Функция переключения в весеннем контексте - PullRequest
8 голосов
/ 09 октября 2011

Я хочу использовать парадигму функции-переключателя.В частности, я хочу, чтобы мои контексты Spring содержали разные определения bean-компонентов на основе переключателя.

Я сталкивался с этим: http://robertmaldon.blogspot.com/2007/04/conditionally-defining-spring-beans.html,, который выглядит хорошо, но может быть слишком громоздким

Ответы [ 2 ]

4 голосов
/ 09 октября 2011

Вы можете использовать пружинные профили - короче говоря, вы запускаете приложение с настройкой профиля, и контекст содержит различные bean-компоненты в зависимости от этого профиля.

3 голосов
/ 09 октября 2011

Я считаю, что на самом деле вы ищете способ для Spring управлять различными профилями конфигурации.

К сожалению, на момент написания этой статьи такой функции не существовало. Насколько я знаю, люди обычно разрабатывают различные схемы, чтобы обойти это, но по существу используют PropertyPlaceholderConfigurer Spring, чтобы «внедрить» различные конфигурации времени выполнения в свои файлы свойств, помещая ${placeholder} в свои операторы импорта Spring, а затем разыменовывая этот заполнитель как изменения их среды (например, «DEV», «TEST», «PROD»).

Однако это будет изменено в Spring 3.1 - поскольку в нем будет введена аннотация @Profile, которая, кажется, хорошо сочетается с опцией Spring Java Configuration, что дает возможность полностью отказаться от конфигурации XML (если, конечно, вы захотите).

Возможно, эта статья проливает больше света на это: Spring 3.1 M1: Представляем @ Profile

...