2017-06-13 6 views
0

私は春の初心者で、豆の仕組みを理解し始めています。私はサードパーティのクラスをサービスまたはBeanとして宣言したいと思います。これはどうすればいいですか?私はクラスを拡張してそれに注釈を付けるべきですか?サードパーティのクラスをサービスにする

例:あなたは、あなたがBeanとして使用したいクラスの所有者でない場合は、あなたが作成することができます

@Service public class MyService { public MyService(ThirdPartyClass thirdPartyClass){..}....} ここで私はサービスとしてThirdPartyClassに注釈を付けることができないか、そうでない場合は

答えて

3

アプリケーションのコンフィギュレーション・クラスのいずれかでBean宣言:

@Configuration 
public class YourConfig { 

    @Bean 
    public ThirdPartyClass thirdPartyClass() { 
     return new ThirdPartyClass(); 
    } 

} 

スプリングはその記述に基づいて適切なオブジェクトをインスタンス化し、他の豆に容器を介してそれを公開します。

+0

これを行い、私のアプリケーションクラスでは、@ @ ConfigurationBuildApplication'というアノテーションを自動的に検出する必要があります。しかし、それはまだ "適格なBeanエラーなし"で動作していません –

+0

実際に '@ SprinBootApplication'も@Configurationクラスなので、このBean宣言をそのクラスの中に置くことができます。 「これを行い、アプリケーションクラスで」と言うと、内側の '@Configuration'クラスを作成してから、内部クラスが静的である限り検出されます。 –

+0

ブレークポイントでデバッグを試みてください。 –

1

あなたはアプリケーションの初期化時に@Bean

@Configuration 
public class ApplicationConfig { 

    @Bean 
    public ClassName methodName() { 
     return new ClassName(); 
    } 
} 

としてあなたのコントロールの外にあるクラスを追加することができ、春には、このメソッドを呼び出すと、春のコンテキストにClassNameオブジェクトを登録し、どこ利用可能になるだろうあなた@Autowiredこの豆。

関連する問題