Spring Boot学习(五)

一、日志配置

Spring Boot支持多种日志框架,默认使用LogBack作为日志框架。

配置日志级别:

  • 格式:logging.level.报名=级别
  • 例如:logging.level.org.springframework.web=debug

文件输出:

Spring Boot默认配置只会输出到控制台,并不会记录到文件中,但是我们通常生产环境使用时都需要以文件方式记录。

在application.properties文件中配置logging.filelogging.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文件,一般都可以发现一些条件注解。

下面是常用的一些条件注解:

@ConditionalOnBean
当容器有指定的Bean的条件下
 @ConditionalOnClass 当类路径下有指定的类的条件下
 @COnditionalOnExpression 基于SpEL表达式作为判断条件
 @ConditionalOnMissingBean 当类路径下没有指定的类的条件下
 @ConditionalOnMissingClass 当类路径下没有指定的类的条件下

这些注解都是组合了@Conditional注解,知识使用了不同的条件。

posted @ 2017-10-03 11:11  wrshun  阅读(184)  评论(0编辑  收藏  举报