2

私は、アプリケーション全体のコンテナの参照を提供するシングルトンである春のユーティリティクラスを開発しました。以下は私のクラスです。

public class SpringUtility 
{
    private static BeanFactory factory ;
    static
    {try
        {BeanFactory factory = new XmlBeanFactory(new FileSystemResource("Spring.xml"));
        }   catch(Exception e) 
        {
            e.printStackTrace();
        }
    }

    private SpringUtility() 
    {}

    public static BeanFactory getBeanFactory()
    {       return factory;
    }}

それを熱心なシングルトンのスタイルに変換したいことをアドバイスしてください。これをどのように実現できるかをアドバイスしてください。この同じクラスを、通常の熱心なデザインパターンなどの熱心なシングルトンデザインパターンに変換する方法を教えてください。

public class SingletonEager {

    private final static SingletonEager INSTANCE = new SingletonEager();

    private SingletonEager() {
    }

    public static SingletonEager getInstance() {
        return SingletonEager.INSTANCE;
    }

    protected Object clone() throws CloneNotSupportedException {
        throw new CloneNotSupportedException();
    }
}

春も同じようにお願いします

4

1 に答える 1

1

BeanFactorySpring コンテキストから Bean を取得したい場合は、実装することをお勧めします。BeanFactoryAwareシングルトンのままで熱心にロードされます

public class BeanManager implements BeanFactoryAware {

  private BeanFactory beanFactory;

  public Person getPerson(){ beanFactory.getBean(Person.class) ;}   

}

BeanManagerそして、このクラスをSpring Beanとしてマークします

于 2012-07-02T09:33:36.967 に答える