config.xml,放在src/main/resources目录
application.properties或application.yml,放在src/main/resources目录
spring.properties,放在项目根目录
boot.xml,放在WEB-INF目录
server.port: 8080(使用冒号分隔)
server.port=8080(使用等号分隔)
server.port 8080(使用空格分隔)
server: port: 8080(层级使用冒号)
对
错
application-dev.properties 和 application-prod.properties
dev-application.properties 和 prod-application.properties
application.properties.dev 和 application.properties.prod
config-dev.xml 和 config-prod.xml
在application.yml中设置spring.profiles.active=prod
启动时添加参数 --spring.profiles.active=prod
设置环境变量 SPRING_PROFILES_ACTIVE=prod
以上三种方式都可以
开发环境使用本地数据库,生产环境使用远程数据库
开发环境开启详细日志,生产环境减少日志输出
开发环境禁用缓存便于调试,生产环境启用缓存提升性能
开发环境使用测试账号,生产环境使用正式账号
不同环境使用不同的第三方服务地址
同一配置文件中使用多个环境的所有配置
使用@Autowired注解自动注入
使用@Value注解绑定配置值
使用@Configuration注解声明配置类
使用@Bean注解创建配置对象
@ConfigurationProperties只能注入字符串类型,@Value可以注入任意类型
@ConfigurationProperties可以将相关属性绑定到一个类,支持类型转换和校验
@ConfigurationProperties需要逐个字段写@Value,更繁琐
@ConfigurationProperties不支持默认值,必须配置完整
可以直接在静态字段上使用@Value注入
需要通过setter方法注入静态字段,不能直接在静态字段上使用@Value
@Value只能在构造方法中使用
@Value注入的值可以在类实例化之前获取
注入配置文件属性值:${myapp.name}
注入系统环境变量:${JAVA_HOME}
注入默认值:${myapp.name:DefaultApp}
注入SpEL表达式:#{systemProperties['user.name']}
注入其他Bean的属性:#{userBean.name}
注入静态常量:#{T(java.lang.Math).PI}
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验