рд╕реНрдкреНрд░рд┐рдВрдЧ 3.1+ рдореЗрдВ рд╕рд░рд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рдорд░реНрдерди

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрджрд░реНрдн: рд╕рдВрдкрддреНрддрд┐-рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

<context:property-placeholder location="classpath*:/prop/*.properties"/> <!--    property  --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongo"/> <constructor-arg name="databaseName" value="${mongo.db}"/> <!--       property --> </bean> 

рд▓реЗрдХрд┐рди, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрджрд░реНрдн рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рддрд░реНрдХ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рдмрд╛рд╣рд░реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛ рдареВрдВрдаред

рдЬрдм рдореИрдВрдиреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, рддреЛ рд╡рд╛рддрд╛рд╡рд░рдг (рджреЗрд╡, рдареЗрд╕, рднрд╛рд░-рдкрд░реАрдХреНрд╖рдг) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рддреИрдирд╛рддреА рддрд░реНрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП - рдореИрдВрдиреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрд░рд╛рдиреА рд╕рд┐рджреНрдз рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдФрд░ рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд┐рдпрд╛:

рдореИрдВрдиреЗ 2 рдЕрд▓рдЧ рд╕рдВрджрд░реНрдн рдмрдирд╛рдП: my-prod.xml рдФрд░ my-test.xml рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕реНрд╡рд┐рдЪрд░ рд╣реИ:

 <context:property-placeholder location="classpath*:/prop/*.properties"/> <import resource="classpath*:my-${proj.env}.xml"/> <!--     property    --> 

рд▓реЗрдХрд┐рди рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рдореЗрд░реЗ рдЗрд░рд╛рджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рдереЗ, рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╕реЗ ред

рдЗрд╕рд▓рд┐рдП, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
рдпрд╣ рдХрд╣рд╛рдиреА рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдЕрдЧрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрдкреНрд░рд┐рдВрдЧ 3.1 рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ, рдпрд╛ рдпреЗ рдЖрдпрд╛рдд рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ:

 <beans profile="test"> <!--       "test" --> <import resource="classpath*:/my-test.xml"/> </beans> <beans profile="prod,dev"> <!-- HE       "test" --> <import resource="classpath*:/my-prod.xml"/> </beans> 

рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ :
рджреЛ рд▓реЙрдиреНрдЪ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

1) рд╕рдВрджрд░реНрдн рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ:

 ClassPathXmlApplicationContext ontext = new ClassPathXmlApplicationContext(new String[]{"classpath*:bean.xml"}, false); ontext.getEnvironment().setActiveProfiles("test"); ontext.refresh(); 

2) рд╡рд╛рдпрд╛ рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ:

 @ContextConfiguration(locations = {"classpath*:bean.xml"}) @ActiveProfiles(profiles = {"test"}) @RunWith(SpringJUnit4ClassRunner.class) public class SuperTest { ... 

рд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рд╣реИ;)

Ps рдЕрдВрдЧреНрд░реЗрдЬреА рд▓реЗрдЦ

Source: https://habr.com/ru/post/In156731/


All Articles