2017-09-06 11 views
-1

私はSpring Serverを実行していますが、これまでフィールドインジェクションによってBeanを自動配線することに問題はありませんでした。いくつかの理由で、これは特定の状況下では機能しません。私は、自分のDatabaseConfigurationがデータベースクラスの内部で自動的に実行されることを実現したいと思います。 DatabaseConfigurationは、Spring AutowiredはBeanConfigで動作しません

@Component 
@ConfigurationProperties(prefix = "databaseConfiguration") 

アノテーションを持つアプリケーションプロパティからロードされます。私はこのクラスをautowiredしている私のBeanConfigの内部で正常に読み込まれます。今、私はこのようなデータベースのBean定義を持っている:

@Bean 
public Database getDatabase() { 
    return new Database(); 
} 

Databaseクラスの中に、このような構成のためのフィールド定義があります:

@Autowired 
DatabaseConfiguration config; 

getDatabase()関数が呼び出されると、私は、DatabaseConfigurationがBeanConfigクラス内で正しくautowiredになっていることを確認しましたが、何らかの理由でDatabaseの作成されたインスタンス内でnullです。

データベースクラスはproject.databasesパッケージ内にあり、DatabaseConigurationとBeanConfigurationはproject.configパッケージ内にあります。

私の主な用途は、プロジェクトパッケージ内にあり、オートワイヤリングはここで働いてdoesntのなぜ誰もが手掛かりを持っています

@EnableScheduling 
@ComponentScan 
@EnableAutoConfiguration(exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class }) 

これらのアノテーションで注釈されていますか?

答えて

0

データベースを手動で作成します - return new Database();。春は何かをオートワイヤリングする機会はありません。

SpringでBeanを作成するか、手動で設定を割り当てるかを選択します。

関連する問題