20

与えられた:

<beans ... namespace decelerations>
     <bean id="foo" class="com.example.foo" />
     <beans profile="abc">
         <bean id="bar" class="com.exmaple.bar" />
     </beans>
</bean>

fooが登録されているプロファイルの名前は何ですか?別のプロファイル定義でfooをオーバーライドする方法はありますか?プロファイルが明示的に指定されていない場合の春のデフォルトプロファイルの名前はありますか?

4

2 に答える 2

24

春のデフォルトプロファイルは「デフォルト」です。これを参照してください:https ://jira.springsource.org/browse/SPR-8203

これを行うことにより、web.xmlのデフォルトプロファイルを変更できます。

<context-param>
    <param-name>spring.profiles.default</param-name>
    <param-value>production</param-value>
</context-param>

コマンドライン:

-Dspring.profiles.default=production

環境変数:

export spring_profiles_default=production

アクティブなプロファイルが設定されている場合、デフォルトを上書きします。

于 2013-01-21T16:47:15.167 に答える
5

Fooプロファイルなしで登録されるだけで、その環境で使用しているプロファイルに関係なく、常にインスタンス化されます。同じファイルSpring内に複数のBeanを作成できるのは、それらが異なるセットにある場合のみです。したがって、プロファイルのタグ内にない場合、Beanを上書きすることはできないと思います。XMLid<beans>Foo<beans>

プロファイルが定義されていない場合、Springは。という名前のプロファイルを使用しますdefault。ただし、プロファイルbeanのタグ内にないものは、<beans>そのプロファイルに登録されません。これは、次のようなものがXMLあり、プロファイルが提供されていない場合にのみ、デフォルトのプロファイルを持つBeanと、プロファイルのないBeanがロードされることを意味します。

<beans ... namespace decelerations>
     <bean id="foo" class="com.example.foo" />
     <beans profile="default">
         <bean id="bar" class="com.exmaple.bar" />
     </beans>
</bean>
于 2013-01-21T16:59:10.263 に答える