您的位置:首页 > 移动开发

Spring Boot 配置文件application.yml

2018-03-16 18:26 489 查看
在Spring Boot项目中application.properties文件或者application.yml文件就是Spring Boot项目的配置文件。但是不单单从 application.properties 获取配置,所以我们可以在程序中多种设置配置属性。按照以下列表的优先级排列:
1.命令行参数
2.java:comp/env 里的 JNDI 属性
3.JVM 系统属性
4.操作系统环境变量
5.RandomValuePropertySource 属性类生成的 random.* 属性
6.应用以外的 application.properties(或 yml)文件
7.打包在应用内的 application.properties(或 yml)文件
8.在应用 @Configuration 配置类中,用 @PropertySource 注解声明的属性文件
9.SpringApplication.setDefaultProperties 声明的默认属性
可见,命令行参数优先级最高。这个可以根据这个优先级,可以在测试或生产环境中快速地修改配置参数值,而不需要重新打包和部署应用。还有第 6 点,根据这个在多 moudle 的项目中,比如常见的项目分 api 、service、dao 等 moudles,往往会加一个 deploy moudle 去打包该业务各个子 moudle,应用以外的配置优先。
关于配置文件,我建议使用application.yml文件,因为提供了结构化几嵌套的格式,也是实际开发中使用的。如,我们可以修改Tomcat的端口、上下文路径和字符集。注意冒号后面要加一个空格



启动项目



自定义属性

除了Spring Boot提供的属性外,我们还可以自定义属性



如果有汉字的话记得改yml文件的编码为UTF-8否则读取会乱码
再建一个Controller类,通过value属性取到自定义属性的值



启动项目,访问请求



b214

假如我们要配置一个类别下的多个属性按上述方式就容易代码冗余了,我们可以使用ConfigurationProperties配置方式新建一个PersonProperties类 把所有属性都配置上去
比如这样



接下来定义一个实体类,执行前缀person以及加上@Component作为组件 方便其他地方注入



注意:ConfigurationProperties需要引入依赖,我们在pom文件添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>最后在Controller类里加一个方法



浏览器如下所示



多环境配置
很多场景的配置,比如数据库配置、Redis 配置、注册中心和日志配置等。在不同的环境,我们需要不同的包去运行项目。所有我们再加上两个配置文件:

application-dev.yml  开发环境
application-prod.yml 生产环境
我们可以分别在里面写各自的配置,只要在application.yml配置文件中指定spring.profiles.active的值即可加载对应的配置文件。







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: