- 默认配置文件加载位置及顺序
springboot会加载以下位置的application.properties或application.yarm文件作为springboot作为默认配置:
-file:/config/
-file:/
-classpath:/config/
-classpath:/
以上路径优先级由高到低,高优先级的配置会覆盖低优先级的配置,springboot会从这四个位置全部加载默认配置文件,形成互补配置
在运行java -jar xxx.jar 时可以通过 -spring.config.location 参数来指定配置文件,这个配置文件会和默认的配置文件一起起作用,并且优先级最高
-
Profile 多配置文件的使用
-
修改默认配置的其他方式
- 使用命令行参数修改任意配置,如 --server.port=80
- jar 文件同级目录下的配置文件也会被加载
- 还有其他很多配置方式
- springboot 原理概述
- springboot启动会加载大量的自动配置类(即@Configration 注解的类)
- 看需要的功能有没有默认写好的自动配置类,是否我们需要的组件已在默认自动配置类中声明
- 自动配置类会从properties 中获取某些属性,我们可以在这些properties 文件中指定我们需要的值,如:
- xxxAutoConfigration : 自动配置类
- xxxProperties:封装自动配置类中的相关属性值
@Value 与 @Configration 的配合使用要搞清楚
- 自动配置报告
springboot 使用@Conditional 注解完成条件配置,即自动配置类中的bean 要生效是有条件的,可以通过在application.properties 文件中加入 debug=true 开启调试模式,从而在控制台打印自动配置报告
- 日志框架
- 主要日志框架
- 日志抽象层:JCL SLF4J jboss-logging
- 日志实现:Log4j JUL Log4j2 LogBack
SLF4J 对应的实现是Log4j Log4j2 LogBack,spring 默认的日志框架是JCL,springboot默认的日志框架是SLF4J 及其实现LogBack
- slf4j
-
使用步骤:
-
导入slf4j 及实现框架LogBack的jar包
-
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } } -
slf4j 架构框图
-
这个图表明任何日志框架都可以通过适配层加入slf4j
- 不同的框架有自己的日志框架,如spring mybatis等,如何统一使用slf4j,方案如下图所示:
说明:可以通过相应的替换jar包实现统一,相当与在应用程序和日志框架之间又加入了一个适配层
具体步骤:
将系统中其他日志框架的jar包删除
用slf4j 提供的jar包来替换原有的日志框架jar包
导入slf4j 的实现jar包
-
使用数据源时候的数据库事务和锁
- 搞懂事务隔离的具体作用,不要纠结于脏读等问题
-
spring 监听器,全局配置文件,内置应用
-
springMVC 的注解配置方式