2015-08-11 2 views
3

У меня есть 3 профиля в моем приложении: dev, test, prod. Я хочу использовать профили весов для настройки формования бина, так что для профиля dev и теста у меня будет одна реализация бина, а для профиля prod у меня будет другой. Вопрос в том, как достичь этого. Как я могу настроить один компонент, чтобы быть активным в двух разных профилях. я пытался что-то вроде этого:Определение бобов на несколько профилей весов

@Component 
@Profile("dev, test") 
class DevTestBean{} 

, но к сожалению, весной видит это как называется Dev запятая пространства тест одного профиля.

ответ

5

Вы должны изменить к @Profile({"dev", "test"})

Значение должно быть объявлено как Set. См documentation

Если класс @Configuration отмечен @Profile, все @Bean методов и @Import аннотаций, связанных с этим классом будут обойдены, если один или несколько из указанных профилей не являются активными , Этот аналогичен поведению в Spring XML: если задан атрибут профиля элемента beans, например, элемент beans не будет анализироваться, если не активирован хотя бы профиль 'p1' или 'p2' . Аналогично, если класс @Component или @Configuration отмечен с помощью @Profile ({"p1", "p2"}), этот класс не будет зарегистрирован или обработан , если не будет указан профиль 'p1' или 'p2' активирован.

Смежные вопросы