Ответ 1
Вы можете передать активный профиль во время выполнения, используя свойство spring.profiles.active
:
-Dspring.profiles.active="profile1,profile2"
См. сообщение в блоге SpringSource о введении профилей.
Как настроить активный профиль через аннотацию в spring?
Например:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { ApplicationConfig.class }, loader = AnnotationConfigContextLoader.class)
@ActiveProfiles( profiles = {ApplicationProfiles.TEST} )
public class CacheManagerTest {
...
}
Для теста JUnit это работает отлично, но как я могу создать контекст прикладного приложения? (У меня нет основного метода/оценок)
Вы можете передать активный профиль во время выполнения, используя свойство spring.profiles.active
:
-Dspring.profiles.active="profile1,profile2"
См. сообщение в блоге SpringSource о введении профилей.
Если вы используете автономное приложение или веб-приложение, вы передаете активный профиль таким образом, согласно Spring блогу
Активация в веб-приложении
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>spring.profiles.active</param-name>
<param-value>production</param-value>
</init-param>
</servlet>
Активация с помощью созданного вручную контекста
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.getEnvironment().setActiveProfiles("dev");
ctx.load("classpath:/com/bank/config/xml/*-config.xml");
ctx.refresh();