2016-04-01 8 views
0

私は私のアプリケーションから使いたい春の豆を持っているとしますが、それはレガシーなコードなので、クラスが手作業であるため@Componentやあらゆる種類のBeanで使いたいすべてのクラスを作ることができませんプロジェクトを通してインスタンス化されたので、私はそれを私が望むところで@Autowireだけではできません。単一のBeanインスタンスを保持して返すSpring 3クラスですか?

Spring Beanのラッパークラスを作成するにはどうすればいいですか?アプリケーションコンテキストに登録されているBeanのインスタンスを返す以外何もしないように、以下のように再構成しますか?

@Service("myBean") 
public class MyBean { 

は基本的に私のような方法でMyBeanHolder.javaのようなものを探しています:

public MyBean getGlobalInstance() { 
    //return my global instance of MyBean 
} 

ので、この方法は、どこにでも私はMyBeanとを使用したい、私はこのgetGlobalInstance()メソッドを経由して、インスタンスを取得することができます。

このSpring 3.xの実行方法を教えてください。

答えて

0

あなたの方法getGlobalInstanceを想定あなたがこれを行うことができ、また、春の豆であるクラスである:

class MyBeanHolder { 
@Autowired 
ApplicationContext applicationContext; 

    public MyBean getGlobalInstance() { 
    return applicationContext.getBean(MyBean.class); 
    } 
} 

そうでなければ、あなたはあなたを見つけることができるアプリケーションコンテキストを取得するためのインタフェースApplicationContextAwareを実装することができますbeanをgetBean

+0

私がこのクラスをbeanにすると、基本的には、ApplicationContextAwareを実装する方法があります。なぜなら、この新しいクラス私が使用しようとしている場所は、まだBeanクラスではないレガシーコードなので 変化する?右? –

関連する問題