Springboot配置文件
配置文件
配置文件路径resuources\application.properties
或者resuources\application.yml
二者存一
application.properties
与application.yml
区别一个是树形目录,一个是单行配置。eg:
server.port=8080
等效于1
2server:
port: 8080配置环境变量
1
2
3
4diy:
parmars: hello
#配置文件引用say=hello
say: ${diy.parmars}代码里面引用
1
2
private String imgUrl;
常见配置
数据库连接配置
1
2
3
4
5
6spring:
datasource:
url: jdbc:mysql://10.14.0.1:3306/sqlname?useUnicode=true&characterEncoding=utf-8
username: xxx
password: xxxx
driver-class-name: com.mysql.jdbc.Driverspringboot访问端口配置
1
2server:
port: 8080静态文件路径映射配置,如果配置了
spring.resources.static-location
会覆盖原来默认的静态文件设置classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
,file
路径指本地磁盘路径,window/Mac/linux的真实目录路径,例如window为C:\\windos\\
1
2
3spring:
resources:
static-locations: <原来的静态文件配置>,file:/Users/xuanleung/Pictures/文件上传大小限制(-1不限制)(128KB)
1
2
3
4
5spring:
servlet:
multipart:
max-file-size: -1
max-request-size: -1
application.yml
与bootstrap.yml
区别
加载顺序bootstrap.yml
->bootstrap-xxx.yml
->application.yml
->application-xxx.yml
注意:多个配置文件,相同替换,不同并集
bootstrap.yml
常用于一些系统级别参数,不被更改
application.yml
应用级别,可以被更改,通过config service服务
bootstrap.yml
常用于应用程序引导阶段例如
- spring config server配置
- application.name配置
使用config server时,bootstrap.yml
常用配置
1 | spring: |
在不考虑加载顺序,两个配置是可以通用的
多环境配置
可以在配置文件(application/bootstrap)名后加上dev、test等后缀以-
分开。使用环境时加上参数--spring.profiles.active=peer1
即可
eg: 新建个application-xxx.yml
,运行时执行java -jar app.jar --spring.profiles.active=xxx
注意:
这里如果存在多个环境配置文件,且有application/bootstrap
没有后缀的原文件时会优先加载它,然后再用指定环境的配置覆盖没有后缀的,这样就会导致,如果没有后缀的文件指定了某个配置,但是有后缀的却没有设置改配置,覆盖的情况,就是取并集,导致某些设置不生效。
常见问题
springboot存储中文到mysql数据库乱码
解决:在配置文件连接数据库地方添加
url: jdbc:mysql://<ip>:<端口>/<数据库名字>?useUnicode=true&characterEncoding=utf-8
application.yml
添加注释报错,提示找不到Failed to load property source from location 'classpath:/application.yml'
解决:检查文件编码格式,不是
utf-8
修改为utf-8
eureka高可用时 提示不可用
unavailable-replicas
,原因是存在application.yml
,且里面设置了1
2
3client:
register-with-eureka: false #Eureka默认也会作为客户端尝试注册,因此需禁用注册行为
fetch-registry: false然后
application-peer.yml
并没有设置改属性,取并集之后导致,禁止注册了解决:
修改
application-peer.yml
里的属性,并设置为true
(未测试)删除或重命名
application-peer.yml
(采用)在
application-peer.yml
覆写配置,并设置为true
(测试,能注册,但是还是unavailable-replicas
)解决:检查是否
application.name
是否设置了不一样的值,一定要设置一样的名字