어쩌면 CDI 1.0 specification을 통해 빗질하는 데 너무 많은 시간이 걸렸지 만 정확히 META-INF/beans.xml
이 필요한 위치에 대한 자세한 설명을 찾을 수 없습니다.CDI 삽입의 경우 제작자 아카이브와 injectee 아카이브에 META-INF/beans.xml이 필요합니까?
합니다 (section on bean discovery는 어떤 일을 의미 몇 밝히는 문장을 만들지 만, 나는 그것이 규범 있는지 확실하지 않습니다.)
내가 느슨하게 어떤 콩 아카이브를 말하는 것은 하나를 필요로 이해합니다. 호환 CDI 1.0 환경에서 다음 항아리에
하지만 경우를 고려 : 단지
- 인터페이스 항아리 포함 인터페이스 기능
@Inject
주입 점, 그러나 생산자 방법 없음 - 제작자 단지 (단순함을 위해) 하나의 Java 객체를 포함 w 하나의 메소드는
@Produces
으로 주석 처리됩니다.
생산 단지과 구현 항아리 모두 빈 아카이브 할 필요가있을 것이다, 그래서 때문에 각 그들에 포함 META-INF/beans.xml
자원을 필요 논리적 보인다.
그러나 완전성을 위해 사실이 경우입니까? 구현 jar은 @Inject
점만 사용하고 CDI 주석은 사용하지 않으므로 다른 방법으로 스캔합니까? 또 다른 방법은 보는이 예에서, 구현은 단지만을위한 대상 는 AS 주사 아닌 소스 주사제의 사용된다. 그래서 저는 어떤 종류의 논리를 볼 수 있습니다 :보세요, 을 주입 할 수있는 콩을 생산하는 항아리 만을 빈 아카이브로 선언해야합니다. (나는 사실이 아니라고 말하고 있는데, 그 논쟁이 이루어지고 있음을 알 수있다.)
마지막으로, 인터페이스 용기의 모든 문제이있다. 정의에 의하면 빈을 포함하고 있지 않지만 오래 전 GlassFish에서 케이스를 보았습니다. 심지어 인터페이스 jar도 META-INF/beans.xml
파일이 있어야했습니다. 그것은 나에게 잘못된 것처럼 보였지만, 나는 놀랍게도 이것을 확인하거나 부인하기 위해 명세서의 절을 정말로 찾을 수 없다는 것을 발견했다.
So : beans.xml
? 주사 형 항아리에서만? 주입 대상 단지에서만? 또는...?