细粒度的自动配置
spring环境抽象
- Spring的环境抽象是各种配置属性的一站式服务。它抽取了原始的属性,这样需要这些属性的bean就可以从Spring本身中获取了。Spring的属性源包括:JVM系统属性;操作系统环境变量;命令行参数;应用属性配置文件。
如图所示:
- 通过sping环境提取属性进行配置
server.port=8080 server.servlet.conext-path=/study
- 通过命令行参数进行配置
java -jar study-1.0.5-SNAPSHOT.jar --server.port=8080
- 通过操作系统环境变量进行配置
export SERVER_PORT = 8080
配置数据源
server.port=8888
spring.datasource.url= jdbc:mysql://localhost/study?useSSL=false&useUnicode=true&&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com. mysql. jdbc.Driver
配置日志
logging.file.path=/var/logs
logging.file.name=study.log
logging.level.root=warn
logging.level.org.springframework.security=debug
默认情况下日志 文件一旦达到10M就会轮换。
引用配置的内容
study.file.name = lei
代码中
//在类上添加注解
@ConfigurationProperties(prefix="taco.orders")
使用proile进行配置
创建多个application-{profile名}.properties。
如图:
激活属性:
在application.properties中添加
spring.profies.active= prod
其中prod就是{profile名字},
使用profile条件化创建bean
在类前添加注解
@Profile("dev") #只有dev环境激活时才创建bean
或者
@Profile({"dev","prod"}) #dev或者prod环境激活时才创建bean
或者
@Profile("!dev") #只要不是dev环境被激活就创建bean