【Spring】Spring常用配置-Profile
发布日期:2021-06-29 13:38:40
浏览次数:2
分类:技术文章
本文共 2461 字,大约阅读时间需要 8 分钟。
转载请注明出处:
本文源自【】
分析
对于Profile先做一个简单的介绍:
单讲profile就是一组配置,不同profile提供不同组合的配置,程序运行时可以选择使用哪些profile来适应环境。也就是Profile为在不同环境下使用不同的配置提供了支持(开发环境下的配置和生产环境下的配置肯定是不同的,例如:数据库的配置)
Spring 为我们提供了大量的激活 profile 的方法,可以通过代码来激活,也可以通过系统环境变量、JVM参数、servlet上下文参数来定义 spring.profiles.active 参数激活 profile,下面说下3种方法:
1、通过设定Environment的ActiveProfiles来设定当前context需要使用的配置环境。在开发中使用@profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。 2、通过设定jvm的spring.profile.active参数来设置配置环境。 3、Web项目设置在Service的context parameter中。进行本示例的演示,需要先配置好Maven和Spring哦、
见:在这里的示例只演示第一种方式的示例哦。
示例
示例Bean
package cn.hncu.p2_4_2Profile;/** * Created with IntelliJ IDEA. * User: 陈浩翔. * Date: 2016/11/14. * Time: 下午 8:37. * Explain:示例Bean */public class DemoBean { public String content; public DemoBean(String content) { super(); this.content = content; } public String getContent(){ return content; } public void setContent(String content) { this.content = content; }}
Profile配置
package cn.hncu.p2_4_2Profile;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Profile;/** * Created with IntelliJ IDEA. * User: 陈浩翔. * Date: 2016/11/14. * Time: 下午 8:41. * Explain:Profile配置 */@Configurationpublic 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"); }}
运行类
package cn.hncu.p2_4_2Profile;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/** * Created with IntelliJ IDEA. * User: 陈浩翔. * Date: 2016/11/14. * Time: 下午 8:51. * Explain:运行类 */public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.getEnvironment().setActiveProfiles("prod");//先将活动的Proofile设置为prod context.register(ProfileConfig.class);//后置注册Bean的配置类,不然会报Bean未定义的错误 context.refresh();//刷新容器 DemoBean demoBean = context.getBean(DemoBean.class); System.out.println(demoBean.getContent()); context.close(); }}
运行结果
现在来对Main类做一下改动,将
context.getEnvironment().setActiveProfiles(“prod”) 修改为 context.getEnvironment().setActiveProfiles(“dev”)结果如下:
转载请注明出处:
本文源自【】
转载地址:https://chenhx.blog.csdn.net/article/details/53164481 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年05月02日 16时04分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
提升查询技能,这7条SQL查询错误必须解决
2019-04-29
TKDE 2020 | 综述:基于知识图谱的推荐系统
2019-04-29
休息时间!哪些业余活动能提升开发人员的技能?
2019-04-29
把人脑“森林”上传到计算机:人类脑计划只是一个科幻野心?
2019-04-29
智力测试:如何超越动物之智?
2019-04-29
事关人类生存?为什么要探寻AI系统的可解释性?
2019-04-29
安全工程师必知:常见Java漏洞有哪些?
2019-04-29
数据科学中的计量经济学技术
2019-04-29
突破边界:数据科学、数据工程和技术的未来
2019-04-29
一切有迹可循!优秀程序员的9个早期迹象
2019-04-29
在后台的python:众多程序员无法攻克的难题
2019-04-29
未来战争:装载AI的美国空军侦察机已经试飞……
2019-04-29
屡战屡败:为什么你会觉得学习编程很难?
2019-04-29
“狙击”特斯拉:电动汽车后起之秀的最后一战
2019-04-29
软件测试的未来:2021年需要关注的15大软件测试趋势
2019-04-29
六大基本AI术语:如何做好人工智能咨询服务?
2019-04-29
讲真,如果手机有灵魂,那就是“备忘录”
2019-04-29
端到端加密:WhatsApp不会去读取你的信息,它不需要……
2019-04-29
国会大厦骚乱,与一家极不可靠的面部识别公司……
2019-04-29
解锁宇宙密码:为什么是3、6、9?
2019-04-29