이미 생성 된 객체로 종속성을 초기화하는 방법이 있습니까? 가정하자스프링에서 이미 생성 된 객체를 초기화하십시오.
나는 다음 클래스가 있습니다
class MyPage {
@Autowired LogStorage storage;
private String applicationId;
private Date date;
public MyPage(String applicationId, Date date) {
this.applicationId = applicationId;
this.date = date;
}
public String render() {
Collection<Entry> entries = storage.getEntries(applicationId, date);
// render entries into HTML for example
}
}
내가 두 단계로 객체 생성을 분할 할을. 먼저, 사용자 제공 데이터 (이 예제에서는 applicationId
과 date
)로 객체를 생성하고, 두 번째는 Spring DI 컨테이너 의존성을 가진 객체를 초기화하는 것입니다. 그래서 이미 생성 된 객체를 초기화하는 일종의 작업이 필요합니다. 나는 클라이언트 코드는 다음과 비슷한 모습이 될 것입니다 생각 :
MyPage p = new MyPage(applicationId, date);
beanFactory.initDependencies(p);
String html = p.render();
클라이언트는 알 수 없습니다 (그리고 내 경우에한다) Page 개체에 필요한 모든 종속, 그래서 명시 적 종속성을 제공 할 수 없습니다. 하지만 BeanFactory
객체에 대한 참조가 있고이 작업을 Spring에 위임 할 수 있습니다. 그것을 할 수있는 방법이 있습니까?