spring boot 的配置主要包括pom、yml、xml、properties 四种,分别可以实现不同的配置功能。
pom配置沿用maven,来配置项目的依赖以及公共的属性变量,也可以利用profiles属性来实现变量的环境隔离和区分,可以利用profiles里面的properties属性来定义一些变量,可以通过在编译的时候加入-Pdev这种参数来选择不同环境的值,例子如下:
maven pom.xml配置
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
<profile>
<id>release</id>
<properties>
<spring.profiles.active>release</spring.profiles.active>
</properties>
</profile>
</profiles>
除了在pom中配置属性变量之外,还可以在yml里面进行配置,yml里面也可以实现不同环境变量的筛选,------下面即显示不同环境的变量定义,通过spring.profiles.active 来实现环境变量的选择,需要注意的是pom里面定义的变量在yml和xml里面需要使用"@spring.profiles.active @"这种才能生效。
yml配置
appname: demo
server:
context-path: /
port: 8091
jwt:
header: Authorization
expiration: 604800
secret: @!@!#%$%^
mybatis:
mapper-locations: classpath:mapper/*.xml
config-location: classpath:page-config.xml
logback:
appname: demo
logdir: ./
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8261/eureka/
spring:
application:
name: user
profiles:
active: @spring.profiles.active@
---
spring:
profiles: dev
redis:
password: @#SDSS
database: 0
port: 8379
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: -1
host: 127.0.0.1
timeout: 0
jackson:
serialization:
INDENT_OUTPUT: true
datasource:
password: 123343
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=UTF-8
username: demo
---
spring:
profiles: prod
redis:
password: 1swe2sw
database: 0
port: 8379
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: -1
host: 127.0.0.1
timeout: 0
jackson:
serialization:
INDENT_OUTPUT: true
datasource:
password: wew!1212#!
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=UTF-8
username: demo
xml里面bean的各种定义和spring的类似,只是外部变量的应用需要使用"@prams.name@"这种才能生效
xml
<root level="warn">
<appender-ref ref="@log.out.target@" />
<appender-ref ref="AsyncLog" />
<appender-ref ref="logfile"/>
</root>
网友评论