내 응용 프로그램에서 클래스의 변수 그룹을 동적으로 주입해야합니다. 응용 프로그램이 커짐에 따라 동일한 인터페이스를 상속하는 클래스 만 추가하면됩니다. 이것은 tradicional java로하기 쉽습니다. 패키지의 모든 클래스를 검색하고 인스턴스화 할 루프를 수행하면됩니다. 나는 CDI에서 그것을하고 싶다. 예를 들어 :CDI : 클래스 그룹의 역동적 인 주입 방법?
public MyValidatorFactory {
for (String className: classNames) {
@Inject
MyValidatorInterface<className> myValidatorInstance;
myValidatorInstance.validate();
}
}
내가 클래스 이름 목록에있는 모든 구현을 통해 루프 (모든 의지를 원하는 :
public MyValidatorInterface {
public boolean validate();
}
@Named
MyValidator1 implements MyValidatorInterface
...
@Named
MyValidator2 implements MyValidatorInterface
...
지금 추악한 아닌 실제 자바 코드는 내가하고 싶은 일의 아이디어를 얻을 수 있습니다 BTW와 같은 패키지에 있어야 함) 동적으로 삽입하여 다음 주에 MyValidator3이라는 새로운 유효성 검사기를 추가하면 새 클래스를 코딩하고 프로젝트에 추가해야합니다. MyValidatorFactory의 루프는 그것을 찾고, 삽입하고, 새로운 클래스에서도 validate() 메소드를 실행할 것이다.
나는 동적 주입에 대해 읽었지만 클래스 이름 그룹을 반복하고 이전 방법으로 인스턴스화하는 것처럼 주입 할 수있는 방법을 찾을 수 없습니다. 당신이 설명하는 무엇
감사
CDI에 Instance''에서보세요, 이것이 당신이 찾고있는 무엇을 : 당신이 뭔가를 할 할 것 javax/enterprise/inject/Instance.html. – Rouliboy
귀하의 의견을 보내 주셔서 감사합니다. 그것이 솔루션의 접근 방식이었습니다. – icordoba