싱글 톤 클래스 구현에 객체를 삽입하려고합니다. 그것은 작품을 나던이Singleton 클래스에서 ApplicationContextAware 사용
public class MyObjectWrapper implements ApplicationContextAware {
public static MyObject myObject;
private ApplicationContext ctxt;
private MyObjectWrapper() {}
public static synchronized MyObject getImpl() {
if (myObject!=null)
return myObject;
MyObjectWrapper myObjectWrapper=new MyObjectWrapper();
this.myObject = (MyObject) myObjectWrapper.getCtxt().getBean("myobject");
return myObject;
}
@Override
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
logger.debug("setApplicationContext - " + arg0);
this.ctxt = arg0;
}
public ApplicationContext getCtxt() {
return ctxt;
}
public void setCtxt(ApplicationContext ctxt) {
this.ctxt = ctxt;
}
}
같은 뭔가, 그게 내가 MyObjectWrapper.getImpl를 호출 할 때() 내가 널을 MyObject를 얻을 수있다. myobject 및 MyObjectWrapper에 대한 빈 항목이 있습니다.
getBean을 사용하는 것이 모범 사례는 아니지만이 특정 예에서는 허용되는 것으로 알고 있습니다. 단점은 무엇입니까? 여기에 없다면, 나는 Main 메소드에서 비슷한 getBean 호출을 할 것이다.
나는이 싱글의 창조를위한 책임을하지만 난 그냥 싶어, 내 주요 방법 (내가 거기 애플리케이션 컨텍스트에 접근하고있다)이 래퍼 클래스를의 getBean을 할 수 있습니다. MyObject가 필요한 객체는 MyObjectWrapper.getImpl()을 호출 할 수 있으며 싱글 톤 객체를 가져옵니다.
동일한 의견을 보내 주시면 감사하겠습니다.