私はそのような春のブートテストを持っている:SpringApplicationConfigurationでの設定クラスの宣言の順序。春ブーツは
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {
PropertyConfig.class,
ServiceConfigA.class,
ServiceConfigB.class}
)
public class SpringTest {
@Test
public void test() {
...
}
}
ときPropertyConfig
内部の豆は無視され、サービスのconfigsから豆がいくつかのフィールドをautowireすることはできませんので、私はコンテキスト初期化エラーを取得するクラスのリストで最初に宣言PropertyConfig
クラス。私がPropertyConfig
をserivceの設定の後に移動させた後、PropertyConfig
の中のbeanを初期化しました。
さらに詳しくは、PropertyConfig
には、2つの豆、PropertiesFactoryBean
およびPropertySourcesPlaceholderConfigurer
が含まれています。原因はPropertySourcesPlaceholderConfigurer
は存在しません。サービスコンフィグからのbeanは、@Value
注釈付きのフィールドをautowiredできませんでした(文字列から整数への自動変換はできません)。
私の質問は、PropertyConfig
の豆が最初のケースで初期化されない理由です。 Springブートテストで設定ロードのいくつかの機能はありますか?
あなたの 'PropertySourcesPlaceholderConfigurer'豆' static'があなたのために働くように私のヒントはありましたか? –