Переключение функций в весеннем контексте

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

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


person IttayD    schedule 09.10.2011    source источник


Ответы (2)


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

person Bozho    schedule 09.10.2011
comment
Я думаю, что это не полное решение. Если я не ошибаюсь, вы не можете смешивать несколько профилей. Но вы хотели бы смешивать несколько функций в решении с переключением функций. Верно? - person Synesso; 27.02.2013
comment
РЕДАКТИРОВАТЬ: кажется, что Spring позволит вам установить несколько профилей, но я все еще подозреваю, что наличие функций == bean-компонентов не всегда будет правильной степенью детализации, но это начало. - person Synesso; 27.02.2013

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

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

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

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

person quantum    schedule 09.10.2011