Spring Boot系列之九 配置和Profiles(二)
2017-04-13 09:33
495 查看
说明
写到这里突然发现很多地方都需要`--spring.profiles.active=dev`这个命令行参数.请大家别忘咯加- -!
And 这两个项目我们使用`application.yml`配置文件.因其功能比`application.properties`更加强大.下面会介绍滴.
End 其实Spring Boot的配置文件可以通过`Spring-Cloud-Config`项目来进行管理.这个以后再说吧
Profiles
`@Profile`注解可以用在`@Component`和`@Configuration`注解之上,用来隔离应用程序配置,使这些配置只能在特定的环境下生效.说白了,就是用了区分生产环境,开发环境,测试环境等等环境的一个配置项.
`@Profile`注解和Multi-profile YAML文档
直接看例子吧
修改配置文件application.yml如下:
注意其中的`---` ,区分profile. 不写直接报错!
运行
dev
设置IDE启动该项目的命令行参数为`spring.profiles.active=dev`或者直接用`java -jar xxx.jar --spring.profiles.active=dev`来启动.
调用`curl http://localhost:8080/settings`或者直接浏览器打开`http://localhost:8080/settings`输出结果`阳光如初 in dev.`
prod
好吧,虽然我们的配置文件里边写了两个`veryjava.name`属性,一个属于`prod`环境,另一个属于`dev`环境.但是,但是! 我们在`VeryJavaProperties`类上写了一个注解`@Profile("dev")`并指定这个类在`spring.profiles.active=dev`时才存在.所以如果这个时候我们在测试代码或者其他代码中使用`@AutoWired`注解注入`VeryJavaProperties`是不对的.
怎么让它顺利运行呢?我们只要修改`VeryJavaProperties`的`@Profile("dev")`为`@Profile({"dev","prod"})`就可以了.
总结
这个例子中说明了两个问题,其一是`@Profile("dev")`这个注解指定profile环境,其二是`application.yml`配置文件指定了多个profile下的相同参数的不同值,用于不同的环境.
代码
本文限于篇幅原因,不能展示所有的代码,如果想要完整的代码示例,请移步https://github.com/sunshineasbefore/veryjava.spring.boot/tree/master/profiles
支持请点赞,不喜勿喷.
每天一点点,成长多一点.
写到这里突然发现很多地方都需要`--spring.profiles.active=dev`这个命令行参数.请大家别忘咯加- -!
And 这两个项目我们使用`application.yml`配置文件.因其功能比`application.properties`更加强大.下面会介绍滴.
End 其实Spring Boot的配置文件可以通过`Spring-Cloud-Config`项目来进行管理.这个以后再说吧
Profiles
`@Profile`注解可以用在`@Component`和`@Configuration`注解之上,用来隔离应用程序配置,使这些配置只能在特定的环境下生效.说白了,就是用了区分生产环境,开发环境,测试环境等等环境的一个配置项.
`@Profile`注解和Multi-profile YAML文档
直接看例子吧
修改配置文件application.yml如下:
注意其中的`---` ,区分profile. 不写直接报错!
运行
dev
设置IDE启动该项目的命令行参数为`spring.profiles.active=dev`或者直接用`java -jar xxx.jar --spring.profiles.active=dev`来启动.
调用`curl http://localhost:8080/settings`或者直接浏览器打开`http://localhost:8080/settings`输出结果`阳光如初 in dev.`
prod
好吧,虽然我们的配置文件里边写了两个`veryjava.name`属性,一个属于`prod`环境,另一个属于`dev`环境.但是,但是! 我们在`VeryJavaProperties`类上写了一个注解`@Profile("dev")`并指定这个类在`spring.profiles.active=dev`时才存在.所以如果这个时候我们在测试代码或者其他代码中使用`@AutoWired`注解注入`VeryJavaProperties`是不对的.
怎么让它顺利运行呢?我们只要修改`VeryJavaProperties`的`@Profile("dev")`为`@Profile({"dev","prod"})`就可以了.
总结
这个例子中说明了两个问题,其一是`@Profile("dev")`这个注解指定profile环境,其二是`application.yml`配置文件指定了多个profile下的相同参数的不同值,用于不同的环境.
代码
本文限于篇幅原因,不能展示所有的代码,如果想要完整的代码示例,请移步https://github.com/sunshineasbefore/veryjava.spring.boot/tree/master/profiles
支持请点赞,不喜勿喷.
每天一点点,成长多一点.
相关文章推荐
- Spring Boot系列教程四:配置文件详解properties
- SpringBoot系列之二intelliJ idea 配置Spring boot 热部署
- SpringBoot系列(1)---无配置文件配置基础1
- springBoot基础系列--properties配置
- springBoot基础系列--properties配置
- Spring Boot系列教程五:使用properties配置文件实现多环境配置
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
- SpringBoot系列(2)---无配置文件配置基础2
- Spring Boot系列教程四:配置文件详解properties
- 07-SpringBoot——Spring常用配置-Profiles
- Spring boot 系列 入门--配置
- Spring Boot系列<二>:SpringBoot完美配置Mybatis
- Spring Boot干货系列:(七)默认日志框架配置
- SpringBoot系列(3)---无配置文件SpringMVC
- Spring Boot系列 - 4. 读取配置文件(application.yml)中的属性值
- Spring Boot干货系列:(二)配置文件解析
- Spring Boot系列(二):Spring Boot的配置文件
- Spring Boot干货系列:(二)配置文件解析
- (转)SpringBoot系列—基础配置
- springBoot基础系列--properties配置