栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为AbstractAnnotationConfigDispatcherServletInitializer设置可与@PropertySource一起使用的活动配置文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为AbstractAnnotationConfigDispatcherServletInitializer设置可与@PropertySource一起使用的活动配置文件?

覆盖

createRootApplicationContext
createServletApplicationContext
对我不起作用。我遇到各种错误,例如非法状态异常和“
$
{spring.profiles.active}”无法解决。挖掘继承树为
AbstractAnnotationConfigDispatcherServletInitializer
我设计了以下解决方案:

public class ApplicationInitializer  extends AbstractAnnotationConfigDispatcherServletInitializer{  @Override  public void onStartup(ServletContext context) throws ServletException {    super.onStartup(context);    String activeProfile = System.getProperty("your.profile.property");    if (activeProfile == null) {      activeProfile = "prod"; // or whatever you want the default to be    }    context.setInitParameter("spring.profiles.active", activeProfile);  }}

现在,您可以创建类似以下的配置类,它将正常工作:

@Configuration@PropertySource( value = "classpath:application-${spring.profiles.active}.properties" )public class MyAppBeans {  @Autowired  private Environment env;  @Bean  public Object coolBean() {    String initParam = this.env.getProperty("cool.bean.initParam");    ...    return coolBean;  }}

当然,您可以通过VM选项(

-Dyour.profile.property=dev
)或容器属性(例如Tomcat容器属性)设置“
your.profile.property” 。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670841.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号