spring环境生效的两种方式:
1.调用Spring的ApplicationContext的无参构造器
@Test public void testProfile2() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.getEnvironment().setActiveProfiles("test","prod"); context.register(com.lei.study_09_18.config.BeanConfig.class); context.refresh(); String[] db = context.getBeanNamesForType(ComboPooledDataSource.class); for (String s : db) { System.out.println(s); } }
2.使用VM参数(建议)
-Dspring.profiles.active=dev
总结:
1.@Profile 加在@Bean上,则该bean在环境中生效
2.@Profile加载类上,则该类在环境中生效