2.4.1点睛
Profile为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的,例如,数据库的配置)。
(1)通过设定Environment的 ActiveProfiles来设定当前context需要使用的配置环境。在开发中使用@Profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。
(2)通过设定jvm的spring.profiles.active参数来设置配置环境。
(3)Web项目设置在Servlet的context parameter中。
2.4.2演示
(1)示例Bean
package com.wisely.highlight_spring4.ch2.profile;
public class DemoBean {
private String content;
public DemoBean(String content){
super();
this.content=content;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
}
}
(2)Profile配置。
package com.wisely.highlight_spring4.ch2.profile;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
public class ProfileConfig {
@Bean
@Profile("dev") //Profile为dev时实例化devDemoBean
public DemoBean devDemoBean(){
return new DemoBean("from development profile");
}
@Bean
@Profile("prod") //Profile为prod时实例化prodDemoBean
public DemoBean prodDemoBean(){
return new DemoBean("from production profile");
}
}
(3)运行。
package com.wisely.highlight_spring4.ch2.profile;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext();
context.getEnvironment().setActiveProfiles("prod");
//先将活动的Profile设置为prod
context.register(ProfileConfig.class);
//后置注册Bean配置类,不然会报Bean未定义的错误。
context.refresh();
//刷新容器DemoBean bean = context.getBean(DemoBean.class);
System.out.println(bean.getContent());
context.close();
}
}
结果如图
文章图片
【Spring|Spring Boot实战(二)Spring常用配置 2.4 Profile】将 context.getEnvironment().setActiveProfiles(“prod”); 修改为context.getEnvironment().setActiveProfiles(“dev”); 效果如图
文章图片
推荐阅读
- =======j2ee|spring用注解实现注入的@resource,@autowired,@inject区别
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
- java人生|35K 入职华为Java开发那天,我哭了(这 5 个月做的一切都值了)
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- 微服务|微服务系列:服务发现与注册-----Eureka(面试突击!你想了解的Eureka都在这里.持续更新中......)
- java|ApplicationListener和SpringApplicationRunListener的联系
- Spring|SpringSecurity--自定义登录页面、注销登录配置
- 性能|性能工具之 Jmeter 通过 SpringBoot 工程启动
- 代码狂魔|Spring源码分析之IOC容器初始化流程