Spring Boot学习
Posted 天遮不住我的眼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot学习相关的知识,希望对你有一定的参考价值。
一、日志配置
Spring Boot支持多种日志框架,默认使用LogBack作为日志框架。
配置日志级别:
- 格式:logging.level.报名=级别
- 例如:logging.level.org.springframework.web=debug
文件输出:
Spring Boot默认配置只会输出到控制台,并不会记录到文件中,但是我们通常生产环境使用时都需要以文件方式记录。
在application.properties文件中配置logging.file
或logging.path
属性。
logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=one.log
logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path=/var/log
二、Profile
profile是spring根据不同环境来提供支持的。
- 全局的Profile配置文件使用格式:application-{profile}.properties
- 通过application.properties中的命令spring.profiles.active=dev来指定环境(dev:开发环境;prod:生产环境)
三、Spring Boot运行原理
Spring Boot不管怎样,都绕不开@SpringBootApplication注解。该注解是一个组合注解,它的核心功能是由@EnableAutoConfiguration提供的。
上面便是它的源码。它的核心注解便是@Import,功能为注解导入。
EnableAutoConfigurationImportSelector使用SpringFactoriesLoader.loadFactoryNames方法来扫描META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器。
(Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器。)
四、条件注解
打开任意一个AutoConfiguration文件,一般都可以发现一些条件注解。
下面是常用的一些条件注解:
|
当容器有指定的Bean的条件下 | |
@ConditionalOnClass | 当类路径下有指定的类的条件下 | |
@COnditionalOnExpression | 基于SpEL表达式作为判断条件 | |
@ConditionalOnMissingBean | 当类路径下没有指定的类的条件下 | |
@ConditionalOnMissingClass | 当类路径下没有指定的类的条件下 |
这些注解都是组合了@Conditional注解,知识使用了不同的条件。
以上是关于Spring Boot学习的主要内容,如果未能解决你的问题,请参考以下文章
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式
一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式