Guice를 사용하기 시작했고 guice 방식을 이해하는 데 어려움이 있습니다. 저는 Spring에 매우 친숙 합니다만, 이것은 조금 다른 것 같습니다. 말,Guice 3.0을 사용하여 오브젝트를 주입
public class SomeDAO {
@NotNull
private DB db = null;
public SomeDAO (String databaseName) throws Exception{
xxxxxxxxxxxxxxxxxxxxxxxx
}
}
나는 컨트롤러가 :
public class SomeController {
private SomeDAO someDAO;
}
가 어떻게 someDAO 개체를 삽입하려면 여기를 guice를 사용해야합니다
은 내가 DAO 클래스가? SomeDAO 생성자의 databaseName은 SomeController에서 제공되어야합니다.감사합니다.
고마워요 ...하지만 몇 가지 데이터베이스가 연결되어 있으므로 지식은 컨트롤러에만 있습니다 ... 그래서 데이터베이스 이름을 DAO 레이어에 전달해야합니다 ... 당신은 새로운 것을 만들 필요가 있다는 것을 의미합니까? SomeDAO ("데이터베이스")? 이 경우 DI 패턴이 아닙니다. Guice와 DI 방식으로이 작업을 수행하는 방법을 보여 주시겠습니까? – popcoder
DAO가 여러 DB에 어떻게 연결되어 있습니까? 그들은 모두 동일한 스키마를 가지고 있습니까? 보조 주사를 사용하는 예가 추가되었습니다. DI 세계에서'new'를 사용하는 것은 반드시 나쁜 것은 아닙니다. 그것은 당신의 특정한 상황에 달려 있습니다. 컨트롤러 만이 DAO에 대해 알아야 할 것이고 DAO가 다른 의존성을 가지지 않는다면'new'를 고수하십시오. 만약 다른 클라이언트가 컨트롤러를 인스턴스화한다면 당신은 보조 인젝션을 사용하기를 원할 것입니다. – condit
MongoDB를 사용하고 있습니다.이 응용 프로그램에서 스키마에 대해별로 걱정하지 않습니다. – popcoder