Как установить профиль Spring по умолчанию

Вот мой сценарий:

a.xml
-----
<beans> <!-- no 'profile' attribute -->
    <bean id="a" class="com.a.A"/>
</beans>

b.xml
-----
<beans > <!-- no 'profile' attribute -->
    <bean id="b" class="com.b.B"/>
</beans>

c.xml
-----
<beans ><!-- no 'profile' attribute -->
    <bean id="c" class="com.c.C"/>
</beans>

<beans profile="dev">  
    <rabbit:connection-factory id="connectionFactory"
    host="x.x.net" username="a" port="xxxx"
    password="a" />

    ....
    ....

</beans>

Цель:

  1. Когда я запускаю свое приложение локально, я хочу загрузить все компоненты из a.xml, b.xml и все компоненты из C.xml, кроме профиля «dev».

  2. Когда я запускаю свое приложение в среде разработки, я хочу загрузить все компоненты из a.xml, b.xml и все компоненты из C.xml.

Я устанавливаю -Dspring.profiles.active=!dev в качестве системного параметра JVM. Проблема в том, что он не загружает другие компоненты.

Любая идея, как мне справиться с этим сценарием?


person Suman    schedule 24.07.2017    source источник


Ответы (1)


Это должно вести себя так, как вы ожидаете, без каких-либо профилей, переданных во время локального (в ожидании импорта всех 3 файлов xml). Элемент beans с «dev» будет загружаться только тогда, когда весна запускается с профилем dev.

person LetsBeFrank    schedule 24.07.2017
comment
Спасибо, @LetsBeFrank. 1. он загружает все bean-компоненты из a, b, c.xml, кроме того, который помечен как dev в Local, если я не передаю какой-либо профиль. 2. Он загружает все bean-компоненты из a, b, c.xml, включая bean-компонент, который помечен как dev, когда я передаю: -Dspring.profiles.active=dev,default - person Suman; 25.07.2017