您的位置:首页 > 编程语言 > Java开发

SpringBoot(二):配置文件详解

2017-09-06 16:05 453 查看
在上节中,我们说到了可以在application.properties里面设置server.port来更换服务启动端口,

这节就来说说配置文件的详细作用.

关于springboot应用的配置内容都可以集中在该文件中,根据我们引入的不同的start模块,

可以在这里定义容器的端口号,数据库连接信息,日志级别等各种配置信息.

如指定端口:server.port=8888

指定服务名:spring.application.name=springboot-demo

一.配置文件的生效顺序(会对值进行覆盖)

命令行参数
java:comp/env里的JNDI属性
JVM操作系统
操作系统环境变量
随机生成的random.*前缀的属性,会产生一个RandomValuePropertySource
在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
在@Configuration类上的@PropertySource注解
默认属性(使用SpringApplication.setDefaultProperties指定)
二.配置文件可以放在以下四个位置:

外置,在对应于应用程序运行目录的/config子目录里面
外置,在应用程序运行的目录里
内置,在config包内
内置,在classpath根目录

如果在同一个优先级位置时候 yml会覆盖掉properties

三.自定义配置文件
1)随机数
#随机字符串32位
secret=${random.value}
#随机int
number=${random.int}
#随机long
bignumber=${random.long}
#随机10以内int
number.less.than.ten=${random.int(10)}
#随机指定范围的值
number.in.range=${random.int[1024,65536]}



2)属性占位符
#占位符
name=SpringBootDemo
desc=${name} is very simple
测试同上

3)禁用模板缓存
模板缓存默认是开启的,但是在开发期间,如果模板缓存开启,就不能实时看到变更的效果,所以可以将对应的模板缓存关闭.
ps:生产环境中一定记得要开启
#禁用模板缓存
#freemark
spring.freemarker.cache=false
#Groovry
spring.groovy.template.cache=false
#velocity
spring.velocity.cache=false


4)配置嵌入式服务器
#配置服务器端口
server.port=8080
#还有一些ssl配置,目前没用到

5)配置日志
springboot默认是采用的logbakc作为日志.
如果你要采用别的日志,就需要剔除boot自带的log的jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<!-- 剔除日志jar -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
这里我们依然是将解logback日志配置
#日志
#读取classpath:logback-mj.xml配置,不能直接使用logback.xml,会无法初始化spring
#springboot推荐使用logback
logging.config=classpath:logback-mj.xml



6)数据源配置

#mysql
#1.可以不指定 driver-class-name,spring boot 会自动识别 url。
#2.数据连接池默认使用 tomcat-jdbc
spring.datasource.url=jdbc:mysql://192.168.31.125:3306/mj?characterEncoding=utf8&useSSL=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver


7)多个环境配置文件

application-test.properties:测试环境
application-dev.properties:开发环境
application-prod.properties:生产环境
然后在application.properties中配置:

#主配置文件,配置了这个会优先读取里面的属性覆盖主配置文件的属性
spring.profiles.active=dev


ps:

我个人习惯了用properties配置,如果使用yml来配置, : 后面要跟空格
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: