SpringBoot(二):配置文件详解

来源:互联网 发布:修改ssh 默认端口 编辑:程序博客网 时间:2024/05/16 23:46

在上节中,我们说到了可以在application.properties里面设置server.port来更换服务启动端口,

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

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

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

如指定端口:server.port=8888

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


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

  1. 命令行参数
  2. java:comp/env里的JNDI属性
  3. JVM操作系统
  4. 操作系统环境变量
  5. 随机生成的random.*前缀的属性,会产生一个RandomValuePropertySource
  6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)
  7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)
  8. 在@Configuration类上的@PropertySource注解
  9. 默认属性(使用SpringApplication.setDefaultProperties指定)
二.配置文件可以放在以下四个位置:
  1. 外置,在对应于应用程序运行目录的/config子目录里面
  2. 外置,在应用程序运行的目录里
  3. 内置,在config包内
  4. 内置,在classpath根目录
如果在同一个优先级位置时候 yml会覆盖掉properties

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



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

3)禁用模板缓存
模板缓存默认是开启的,但是在开发期间,如果模板缓存开启,就不能实时看到变更的效果,所以可以将对应的模板缓存关闭.
ps:生产环境中一定记得要开启
#禁用模板缓存#freemarkspring.freemarker.cache=false#Groovryspring.groovy.template.cache=false#velocityspring.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推荐使用logbacklogging.config=classpath:logback-mj.xml



6)数据源配置

#mysql #1.可以不指定 driver-class-name,spring boot 会自动识别 url。 #2.数据连接池默认使用 tomcat-jdbcspring.datasource.url=jdbc:mysql://192.168.31.125:3306/mj?characterEncoding=utf8&useSSL=true&serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=rootspring.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来配置, : 后面要跟空格

原创粉丝点击