spring 3.x关于profile的一些事

众所周知,spring 3.0以后注解几乎完全取代了xml,而通过AnnotationConfigApplicationContext+注解就可以完全取代xml;博客 http://blog.csdn.net/chjttony/article/details/6301523中通过剖析该类,详细讲解了其工作原理。spring3.x的里程碑之一是不同profile的定义,用户可以通过<beans:profile="">属性任务定义自己的工作模式。但是一些情况下,我们喜欢xml+注解的方式编写程序,这就使得一些地方出现细微的问题。笔者在编写程序的过程中,一开始用简单的ApplicationContext获得上下文结果出错,原因是ApplicationContex读不出profile下的bean,当然使用AnnotationConfigApplicationContext也是做不到的。后来尝试使用
  ConfigurableApplicationContext 这个的好处是可以设置环境的ActiveProfile参数,但是还是不能得到效果,最后是通过下面代码解决的问题:

GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.getEnvironment().setActiveProfiles( "dev" ); ctx.load( "classpath:/*-config.xml" ); ctx.refresh();
先设定profile然后load配置文件最后还要refresh()这样就能独到项目中所有注解和配置了的bean。

你可能感兴趣的:(spring,bean,xml,工作,任务)