Переключение контекста весеннего приложения или классов Impl Java с использованием профилей Maven - PullRequest
1 голос
/ 29 марта 2012

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

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

В настоящее время мой bean def имеет значение

<bean id="somebean" class="com.x.SomeImpl" > 

. Мне нужно будет заменить и развернуть его иногда как

<bean id="somebean" class="com.x.SomeOtherImpl" > 

Теперь я думаю о следующих подходах:

1) Используйте профили Maven, чтобы переключить полный файл applicationContext.xml на другой файл applicationContextB.xml, основанный на профиле Maven.

2) Использовать профили Maven как-нибудь?замените только определение идентификатора bean-компонента на «somebean»

Мои вопросы:

a) Как можно реализовать вариант 2?

b) Эти подходы все еще компилируются и упаковываются какSomeImpl и SomeOtherImpl во время сборки.Как я могу выбрать только одно, а не другое для комплимента и упаковки в EAR?

Я знаю, что в Spring 3.1 есть профили env для bean-компонентов, но в настоящее время это не вариант.

Ответы [ 3 ]

2 голосов
/ 29 марта 2012

Можно рассмотреть использование доступных ресурсов maven и фильтрацию . Вы можете иметь заполнители в вашем контекстном файле и файл свойств для каждого профиля, содержащий значения. В каждом профиле вы можете использовать свой файл свойств и соответственно фильтровать ваш файл контекста.

0 голосов
/ 10 марта 2016

вы можете импортировать несколько файлов конфигурации в вашу конфигурацию следующим образом:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">    
    <import resource="applicationContextA.xml"/>
    <import resource="applicationContextB"/>
</beans>

Для переключения вы можете использовать профили Spring.

0 голосов
/ 02 апреля 2012

Взгляните на Maven Build Helper Plugin add-source.

Вы можете комбинировать профили и Build Helper Plugin (цель add-source) для добавления необходимых классов в обоих случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...