官网配置:https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
maven项目 分层开发,任意模块都可以添加配置,
@ConfigurationProperties是将application配置文件的某类名下所有的属性值,自动封装到实体类中。
@Value是将application配置文件中,所需要的某个属性值,封装到java代码中以供使用。
配置文件可以引入,启动服务的时候加参数Run a Java application configuractions:
VM arguments -Dspring.profiles.active=dev springboot自带tomcat 通过main方法启动,-D表示标准参数( program arguments 中的值作为 args[] 的参数传入的,而 VM Arguments 是设置的虚拟机的属性。
program arguments 是要传给你的应用程序的,它通过主函数中的 args 来传值。 VM arguments是系统的属性,要传给 java 虚拟机的。-D set a system property(设置系统属性) 可通过语句System.getProperties().list(System.out);查看有哪些参数可以设置。)
<profile>
<id>dev</id>
<properties>
<profile.active>dev</profile.active>
<docker.domain>harbor.xx.com</docker.domain> /pom.xml,打包环境指定
<docker.repo>demo</docker.repo>
</properties>
</profile>
根据文档描述,我们除application.properties外,还可以根据命名约定(
命名格式:application-{profile}.properties)来配置,如果active赋予的参数没有与使用该命名约定格式文件相匹配的话,app则会默认从名为application-default.properties 的配置文件加载配置。
如:spring.profiles.active=hello-world,sender,dev 有三个参数,其中 dev 正好匹配下面配置中的application-dev.properties 配置文件,所以app启动时,项目会先从application-dev.properties加载配置,再从application.properties配置文件加载配置,如果有重复的配置,则会以application.properties的配置为准。(配置文件加载顺序详见官方文档:24. Externalized Configuration)
yml格式:
spring:
application:
name: xxx
index: 1
http:
encoding: # encoding chinese
force: true
multipart: # upload file
enabled: true
max-file-size: 5MB
max-request-size: 10MB
profiles:
active: ${profile.active} ##########这个取启动时的vm arguments设置的值,使用命名约定格式文件;配合maven的pom里面配置的环境
# mybatis config
mybatis:
type-aliases-package: com.xx.promotion.entity
mapper-locations:
- classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
# mapper config
mapper:
mappers: com.xx.promotion.mymapper.MyMapper
not-empty: false
identity: MYSQL
# pagehelper config
pagehelper:
helper-dialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql