[SPRING] CDI의 Instance 또는 Guices Provider에 해당하는 Spring은 무엇입니까?
SPRINGCDI의 Instance 또는 Guices Provider에 해당하는 Spring은 무엇입니까?
CDI에서 다음을 사용하여 특정 유형의 항목을 제공 할 객체를 정의 할 수 있습니다.
@ 주입
인스턴스
마찬가지로 Guice에서 할 수있는 일 :
@ 주입
공급자
스프링에 비슷한 구조가 있는지 궁금하거나 참조를 얻기 위해 ApplicationContext를 사용해야합니까?
해결법
-
==============================
1.그래서 주위를 파고 들자 Spring이 JSR-330을 지원한다는 것을 알게되었다. 이 JSR은 여러 가지 종속성 삽입 인터페이스, 주석 및 동작을 표준화하는 간단한 API를 정의합니다. 전체 사양은 그대로이 API입니다.
그래서 주위를 파고 들자 Spring이 JSR-330을 지원한다는 것을 알게되었다. 이 JSR은 여러 가지 종속성 삽입 인터페이스, 주석 및 동작을 표준화하는 간단한 API를 정의합니다. 전체 사양은 그대로이 API입니다.
Spring의 FactoryBean과는 달리 javax.inject.Provider 인터페이스는 Bean 참조를 가져올 때 Exception을 발생시키지 않습니다. 게다가, 당신은 여전히 어떤 곳에서이 FactoryBean을 정의 할 필요가 있습니다 (XML 읽기 또는 @Configuration 클래스, 그리고 이것은 차선책입니다).
버그 때문에, 현재의 Spring 3.1.1에서 javax.inject.Provider는 작동하지 않습니다. 그것은 스프링 3.1.0에서 작동합니다.
이것을 사용하려면 javax.inject 항아리를 포함시킬 필요가 있습니다. Maven을 사용한다면 다음을 할 수 있습니다 :
<dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency>
Spring은 그것을 감지하고 그 순간부터 간단하게 다음을 할 수 있습니다 :
@Inject Provider<MyObject> myObjectInstance; //... MyObject myObjectInstance.get();
Guice 예제와 마찬가지로, 동일한 API이기 때문입니다.
콘스탄틴에 대한 나의 이전 코멘트에도 불구하고, 스프링은 그 자체로 공급자를 생성합니다. (나는 스프링 3.1.1에 대해 테스트 중이었고이 스프링 공급자 회귀 문제를 겪었다)
-
==============================
2.FactoryBean처럼 들립니다.
FactoryBean처럼 들립니다.
from https://stackoverflow.com/questions/10538528/what-is-the-spring-equivalent-for-cdis-instance-or-guices-provider by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring JDBC 지원 및 대규모 데이터 세트 (0) | 2019.02.01 |
---|---|
[SPRING] 스프링 부트에서 Postgres 연결이 닫혔다. (0) | 2019.02.01 |
[SPRING] Spring Optimistic Locking : 커밋이 성공할 때까지 트랜잭션 방식을 다시 시도하는 방법 (0) | 2019.02.01 |
[SPRING] 어떤 Tomcat 네이티브 라이브러리를 프로덕션 환경에서 사용해야합니까? (0) | 2019.02.01 |
[SPRING] Spring - 값이 null이 아닌 경우에만 속성을 설정합니다. (0) | 2019.02.01 |