Spring-boot-3 -注解 yaml配置 -日志

4、核心技能

1. 常用注解

SpringBoot 摒弃 XML 配置方式,改为全注解驱动

1. 组件注册

  • @Configuration 自定义配置类、@SpringBootConfiguration 用来标注SpringBoot主启动类的
  • @Bean 可以在自定义配置类面创建对象交给ioc容器,组件在容器中的名字为方法名、@Scope 在application类上直接写注解,然后写上多例就可以了prototype
  • 假如第三方包任意对象想注入组件,跟上面那个一样或者写一个@import (类)直接导入组件名字默认全类名
  • @Controller、@Service、@Repository、@Component
  • @Import
  • @ComponentScan

2. 条件注解

  • @ConditionalOnXxx
  • 如果注解指定的条件成立则触发指定行为
  • ConditionOnClass如果类路径中存在这个类,则触发指定行为,
  • ConditionOnMissingClass如果类路径中不存在这个类,则触发指定行为,
  • ConditionOnBean如果容器存在这个Bean,则触发行为
  • 场景模拟:
  • 如果存在fastsqlexception ,给容器放一个cat组件 名叫cat01
  • 否则放一个dog组件,名叫dog01
  • 如果系统中有dog01这个组件就给容器放一个user组件,名叫张三
  • 否则就放一个user,名叫lisi

3. 属性绑定

  • @ConfigurationProperties
  • 将容器中任意组件属性值和配置文件中某一配置项进行绑定 例如使用component 或者在配置类里进行创建
  • 给注册组件
  • 使用@ConfigurationProperties(prefix前缀名= " " ) 可以放在类上或者方法上
  • @EnableConfigurationProperties
  • 复合注解 可以把类方法容器里,同时可以直接进行属性绑定,快速注册 导入第三方写好的组件 然后加上全类名 SpringBoot默认只扫描主类里的包

主程序

三个注解组成

SpringBootConfiguration、Enableautocoonfiguration、Conmponentscan

默认只能扫描主程序所在的包及其下面的子包,扫描不到spring-boot-autoconfigure包中官方写好的配置类

Enableautoconfiguration SpringBoot开启自动配置的核心

Yaml配置文件

特点:方便读写,层次分明,

基本语法

属性有层级关系,使用点来表示层级关系 使用下一行带来空格 ,k和v之间必须要有空格

1.大小写敏感,有层级关系要加空格 左侧对齐相同层级

2.支持的写法,哈希(hash)/映射(map)/字典(dictionary)

3.可以在pom文件中引入插件lombok的,尽在编译期间生效,这样在类里面写上@Data可以直接生成get/set方法,JavaBean属性的

@NoArgsConstructor // 自动生成无参构造器

@AllArgsConstructor 自动生成全参构造器

在properties里面加属性

4.在yaml里面 数组

这个是大文本的 > 的注意事项(若没有缩进,会压缩换行,若有缩进会保留原格式)

日志配置

日志框架

SpringBoot默认用的什么,

spring5以后直接写了 commons-logging 被 spring 直接写了

默认用的logback

SpringBoot怎么把日志配置好的:

日志格式

可以在配置文件里面做修改 日志格式

日志级别

调整日记级别甚至是每一个包下面的日志级别

logging.level.root =

拿到包名 logging.level.包名 =

日志分组

自定义的两个组,web和数据库的

文件输出

想要实现文件保存,有关键的logging

//指定文件名字

1. 只写名字,就生成到当前项目同位置的demo.log

2. 也可以写路径加名字

logging.file.name=

//指定文件地址

logging.file.path=

如果有name 和 path name的优先级高于path

文件归档与滚动切割

归档:每天的日志单独存一个文档中

切割:每个文件只要求?mb,超过大小切割成另外一个文档

自定义配置

相关推荐
用户6222884048192 小时前
Redis 内存管理与过期淘汰策略:从 maxmemory 到 LRU / LFU,一篇讲透
java·redis
青春逝如流水2 小时前
Java 线程池的创建方式、注意要点与任务类型判断
java·开发语言·线程池·多线程·ai文章
用户3610588626122 小时前
深入理解Scala模式匹配:结构化解构
java
开开心心_Every2 小时前
内存清理工具定时自动清理开机自启动
java·开发语言·spring·计算机外设·ocr·intellij-idea·excel
IT邦德2 小时前
Bond-DBCheck 邦德智能巡检平台助力 DBA
数据库·dba
李福春2 小时前
斗破Google ADK Java苍穹-第5境斗灵-凝物通脉-Context与State
java·开发语言·人工智能·java-ee·google adk·深圳同盟·腾讯云架构师技术同盟
十年Java程序媛2 小时前
Java 接口和抽象类对比|抛弃老旧八股,正确选型
java·开发语言·spring boot·后端
范中勤2 小时前
OSS 多文件打包回流上传:流式管道无落地 VS 临时磁盘落地,两种工业方案深度对比
java·高并发·zip·oss·架构选型
无毁的湖光-Al3 小时前
解Bug之路-隔离故障点后业务不恢复?-热点Key处理与亚稳态故障
java·数据库·mysql