에 의해 다루어지지 않은 것 나는 의존성 주입을 위해 Google Guice으로 꼬박 말아서 기존 애플리케이션에 통합하기 시작했다. 여태까지는 그런대로 잘됐다. 나는 그들의 의존성, Strings, DataSources 등과 같은 많은 클래스를 필요로한다. 네임드 바인딩이 있다는 것을 알고 있지만 실제로 각 클래스의 생성자에 전달해야하는 모든 간단한 문자열에 대한 주석을 작성하고 싶지 않습니다. 그러면 AssistedInject라는 것이 있는데, 나를 위해 Factory 구현을 만듭니다. 와우,하지만 여전히 공장의 인터페이스를 정의해야합니다. 이 예제 클래스에 대한 종속성을 가지고 있습니까 클래스,하지만 괜찮 그게 전부 :Guice와의 의존성 주입 : 튜토리얼
전에서 의심 Guice 또는 더 일반적으로, DI 올바른 방법을 사용하는 방법을 나는 경우가 있습니다public class FooBarClass {
public FooBarClass(String name, String anotherOne) {
// Some stuff
}
}
. "자주 듣겠습니다 : XYZ 프레임 워크는 새로운 새입니다." 그러나 이것은 암시 적으로 인스턴스를 DI 프레임 워크로 만들어야합니다.
한 인스턴스 만
을하는 것이 무엇인가 내가이 클래스의 인스턴스를 하나만 필요한 경우? 이 클래스는 두 개의 문자열 옆에 절대적으로 종속 관계가 없습니다. Shutdown Hook에 대해 한 번만 인스턴스화되고 JVM으로 전달되는 Shutdown Hook에 대해 생각해보십시오. Guice와 함께이 인스턴스를 만들어야합니까? 주입 할 것이 없기 때문에 이것은 매우 바보 같이 보입니다. 그러나 Guide 인터페이스를 전달하는 팩토리 인터페이스를 작성해야하고 DI를 사용하기위한 FooBarClass의 인터페이스를 만들어야합니다.
여러 인스턴스가 동일한 것은 내가이 클래스의 여러 인스턴스를 필요로 경우에 적용
을해야합니다. 의존성은 없지만 아무 것도 얻을 수없는 상용구 코드를 만들어야합니다. 이것은 나에게 잘못된 것처럼 보인다.
그럼 어떻게 DI 및/또는 Guice를 사용해야합니까?
고맙습니다.