@Profile注釈は、Bean環境を切り替えるために作成された構成に応じて決定することができます
@Configuration
@Profile( "DEV")
publiクラスDevelopmentProfileConfig {
@Bean(destroyMethodを= "シャットダウン")
パブリックデータソースデータソース(){
.....返します。
}
}
@Profile上記のクラスで使用される、それはDEVプロファイルがアクティブ時にのみのSpring Beanの設定クラスが作成されて教えてくれます。この方法が有効化されていない場合は、@Beanコメントで無視されます。
Spring3.1で、あなただけの3.2バージョンでは、それはまた@Beanノートと一緒に使用、メソッドレベルで使用、そうすることができ、クラスレベルで@Profileアノテーションを使用することができますどのようにすることができ、同じクラスコンフィギュレーション。として
@Configuration
publiクラスDevelopmentProfileConfig {
@Bean(destroyMethodを= "シャットダウン")
@Profile( "DEV")
パブリックデータソースdevDataSource(){
.....返します。
}
@Bean(destroyMethodを= "シャットダウン")
@Profile( "PROD")
パブリックデータソースproDataSource(){
.....返します。
}
}
ここでの声明では、プロファイル内のより多くの豆が、しかし、プロファイルが有効にされている場合にのみ、対応するBeanが作成されます。Beanは、プロファイルが作成されます宣言していません。
XML構成プロファイル
DEV環境のため、XML設定ファイルを次のように
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
profile = "dev">
<jdbc:embended-database id="dataSource">
....
</jdbc:embedded-database>
</beans>
以下は、構成が対応する環境Beanに対応します
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
profile = "dev">
<beans profile="dev">
<jdbc:embended-database id="dataSource">
....
</jdbc:embedded-database>
</beans>
<beans profile="qa">
<jdbc:embended-database id="dataSource">
....
</jdbc:embedded-database>
</beans>
</beans>
活性化プロフィール
アクティブなプロファイルを決定する際の春は、あなたがspring.profiles.activeとspring.profiles.defaultを頼りにする必要があります。spring.profiles.activeプロパティは、その値は、プロファイルの活性化を決定するために使用されます。ノーspring.profiles.active場合は、春には値spring.profiles.defaultを探します。両方が設定されていない場合は、プロファイルをアクティブにするには何の希望もありませんので、専用Beanを作成します@profileが定義されていません。
設定方法はこれら二つの性質:
DispatcherServletの初期化パラメータとして1、
web.xmlに次のコードを追加します。
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
<param-name>spring.profiles.default</param-name>
<param-value>dev</param-value> //为servlet设置默认的profile
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
図2に示すように、Webアプリケーションのコンテキストとして
コンテキストのために、web.xmlの次のコードで設定したデフォルトのプロファイルを増やし
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>dev</param-value>
</context-param>
3、環境変数として
図4に示すように、JVMのシステムプロパティとして
5、統合テストに基づいて、注釈の使用が提供さ@ActiveProfiles
@Runwith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={PersistenceTestConfig.class})
@ActiveProfiles("dev")
public class PersistenceTest{
......
}
図2は、上記の方法に従って、コードは、すべての開発者は、任意の追加の構成なしで環境を開発するために使用されている取得しました。アプリケーションは、QA、本番または他の環境にデプロイされると財産の使用、または環境変数の設定に基づいてシステムの展開を担当する人はspring.profiles用として、ときspring.profiles.activeを設定した後、JNDIにspring.profiles.active。もはや有効であったものにデフォルトの設定、システムの優先順位プロファイルspring.profiles.activeセット。
アクティブおよびデフォルトのプロファイルを使用すると、同時に複数のプロファイルを活性化できることを示すために、複数のフォームを使用している。しかし、それは少し重要性を持っているでしょう。