1. 开篇

Profile为不同环境下使用不同配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的,例如,数据库的配置)。

a. 通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境。在开发中使用@Profile注解类或者方法,达到在不同环境下选择实例化不同的Bean;

b. 通过设定jvm的spring.profile.active参数来设置配置环境;

c. Web项目设置在servlet的context parameter中。

如下图:

每天一个Java知识点(Spring-Profile)

context parameter

 

2. 代码演示

a. bean代码:

 

每天一个Java知识点(Spring-Profile)

Bean

b. 配置类:

 

每天一个Java知识点(Spring-Profile)

配置类

解释:

i. profile为dev时实例化devDemoBean;

ii. profile为pro时实例化proDemoBean。

c. 运行测试类:

 

每天一个Java知识点(Spring-Profile)

配置为pro时

每天一个Java知识点(Spring-Profile)

配置为dev时

解释:

i. 需要先设置活动的profile;

ii. 后置注册Bean配置类,不然会报Bean未定义的错误;

iii. 刷新容器。

d. 结果显示:

i. context.getEnvironment().setActiveProfiles("pro")结果如下:

每天一个Java知识点(Spring-Profile)

配置为pro时运行结果

ii. context.getEnvironment().setActiveProfiles("dev")结果如下:

每天一个Java知识点(Spring-Profile)

配置为dev时运行结果

相关文章: