springBoot使用spring.profiles.activ区分生产/开发环境
spring boot 提供
spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
profile的配置文件可以按照application.properyies的放置位置一样,放于以下四个位置:
当前项目根目录的 “/config”的子目录下
当前项目根目录下
classpath根目录的“/config”包下
classpath的根目录下
demo演示
定义俩个properties文件,
application-dev.properties和application-prod.properties,
并在俩个文件中都分别
开发环境
server.port=8081
生产环境
server.port=8082
在application.properyies也写上,并把profile切换到application-dev.properties的配置文件
#banner关掉
spring.main.banner-mode=offserver.port=8093
spring.profiles.active=dev
启动SpringbootApplication主程序入口,在控制台下打印出启动tomcat的端口号为配置文件application-dev.properties设置的8081
除了可以用profile的配置文件来分区配置我们的环境变量,在代码里,我们还可以直接用@Profile注解来进行配置,@Profile可以作用于方法或类上。
定义一个User类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private Integer id;private String name;private String address;
}
创建ProfilesConfig 类,创建一个id为profilesConfig1的bean,在开发环境下内容为id=1的User对象;在生产环境下内容为id=1的User对象
@Configuration
public class ProfilesConfig {@Bean("profilesConfig1")@Profile("prod")public User getUser1(){return new User(1, "李磊磊1", "北京市");}@Bean("profilesConfig1")@Profile("dev")public User getUser2(){return new User(2, "李磊磊1", "北京市");}
}
application-dev.properties的配置文件
#banner关掉
spring.main.banner-mode=offserver.port=8093
spring.profiles.active=dev
运行SpringbootApplicationTests,打印id为profilesConfig1的bean,控制台显示为测试环境下的profilesConfig1,id=2的user
@SpringBootTest
class SpringbootApplicationTests {@Autowired@Qualifier("profilesConfig1")private User profilesConfig1;@Testvoid contextLoads() {System.out.println(profilesConfig1);}
}
注:
除了spring.profiles.active来激活一个或者多个profile之外,还可以用spring.profiles.include来叠加profile
spring.profiles.include=dev,prod
通过命令行设置
在命令行运行时,连续的两个减号–就是对application.properties中的属性值进行赋值的标识。java -jar xxx.jar --server.port=8888命令,等价于我们在application.properties中添加属性server.port=8888。
通过命令行来修改属性值固然提供了不错的便利性,但是通过命令行就能更改应用运行的参数,那岂不是很不安全?是的,所以Spring Boot也贴心的提供了屏蔽命令行访问属性的设置,只需要这句设置就能屏蔽:SpringApplication.setAddCommandLineProperties(false)。
如果不在application.properties设置spring.profiles.active,也可以在运行jar的时候,使用java -jar xxx.jar --spring.profiles.active=***命令行指定加载配置文件
执行java -jar xxx.jar --spring.profiles.active=dev,可以观察到服务端口被设置为9090,也就是测试环境的配置(test)执行java -jar xxx.jar --spring.profiles.active=prod,可以观察到服务端口被设置为80,也就是生产环境的配置(prod)
springBoot使用spring.profiles.activ区分生产/开发环境相关推荐
- springBoot配置spring.profiles.active多环境
spring.profiles.active多环境配置 springBoot动态配置多环境(dev/test/prod)数据信息读取 pom文件配置 YAML文件配置 springBoot动态配置多环 ...
- Springboot配置文件-spring.profiles.active
Springboot配置文件-spring.profiles.active 配置文件中spring.profiles.active是区分不同环境的配置文件. 一个springBoot项目生成会经历开发 ...
- springboot获取active_springboot 使用spring.profiles.active 区分不同环境下配置文件
一.新建一个maven 工程 二.在pom.xml文件中加入如下依赖 4.0.0 com.bt.com.cn bt-springboot 0.0.1-SNAPSHOT bt-springboot bt ...
- springboot配置spring.profiles.active多环境支持
server:port: 8081 --- server:port: 8083 spring:profiles: dev 启动类中多了一个div 也可以这样运行
- springboot启动spring.profiles.active和spring.profiles.include影响的区别
application.properties文件内容 spring.profiles.active=test4 pring.profiles.include=test3,test5 version=1 ...
- 【WebPack】引入Vue;认识Plugin;使用uglifyjs丑化JS代码;搭建本地服务器;生产开发环境配置文件的抽离
Vue实战 - 配套源码 npm install --save-dev vue-loader vue-template-compiler 可能会报错如下: 以上报错解决方式:修改版本^13.0.0,然 ...
- 从零开始搭建webpack的vue生产/开发环境
一.初始化项目 在命令行中敲入如下命令: mkdir Webpack-Vue && cd Webpack-Vue && npm init -y 然后你就可以在你的当前路 ...
- java ice spring_卩大王叫我来巡山-【Springboot + Ice 系列文章】1.搭建开发环境
# 一.安装 后续更新使用IDEA安装 其实spring boot官方已经提供了用于开发spring boot的定制版eclipse(STS,Spring Tool Suite)直接下载使用即可,这里 ...
- 31 SpringBoot多环境的切换(生产环境、开发环境、测试环境)
参考链接: Spring官网 Spring官网 外部配置加载顺序的说明 SpringBoot多环境的切换(生产环境.开发环境.测试环境)_周太阳的博客-CSDN博客_springboot测试生产环境切 ...
最新文章
- python二维数组初始化
- python27安装教程-Python2和Python3安装教程
- java编程题有难度的_算法与编程面试题 不喜勿喷 难度指数:*****...
- steam怎么看邮箱绑定的账号_怎么为QQ邮箱设置英文邮箱账号
- linux 脚本 if else,基于shell的if和else详解
- keras从入门到放弃(十二)卷积神经网络
- android span的用法,Android Span的使用
- 利用Basic authentication 测试不同user的metadata access request
- opencv:用最邻近插值和双线性插值法实现上采样(放大图像)与下采样(缩小图像)
- freemaker中小数展示为整数的问题
- 【差分隐私入门】差分隐私系统学习记录 (一)
- 关于“指针数组”和”数组指针“
- java 综合练习_Java 之综合练习
- 基于jsp+servlet图书管理系统之后台用户信息修改操作
- php创建文件目录,及删除目录和文件
- Mock-- Server的使用
- ORACLE数据库无法执行UPDATE
- 大家都是怎么写论文的
- ieeetran_IEEEtran BibTex样式
- 织梦dedecms建站流程