[SPRING] 스프링 자동 와이어링 클래스 대 인터페이스?
SPRING스프링 자동 와이어링 클래스 대 인터페이스?
나는이 봄 설정을 가지고있다 :
<bean id="boo" class="com.x.TheClass"/>
TheClass 클래스는 TheInterface를 구현합니다. 그럼 나는 (가상의) 자바 코드를 가지고있다.
@Autowired
TheInterface x;
@Autowired
TheClass y;
The Interface의 autowiring은 작동하지만 The Class의 autowiring은 실패합니다. Spring은 클래스에 NoSuchBeanDefinitionException을 준다.
클래스가 아닌 인터페이스를 연결할 수있는 이유는 무엇입니까?
해결법
-
==============================
1.보통 둘 다 작동 할 것이고, 인터페이스 나 클래스를 autowire 할 수 있습니다.
보통 둘 다 작동 할 것이고, 인터페이스 나 클래스를 autowire 할 수 있습니다.
생성 된 프록시 객체에 boo bean을 래핑하는 어쩌면 컨텍스트의 어딘가에 자동 프록시 생성기가있을 것입니다. 이 프록시 객체는 TheInterface를 구현하지만 TheClass는 아닙니다. 자동 프록시를 사용할 때는 구현이 아닌 인터페이스에 프로그램해야합니다.
가장 가능성있는 후보는 트랜잭션 프록시입니다. AspectJ 또는 @Transactional을 사용하여 Spring 트랜잭션을 사용하고 있습니까?
from https://stackoverflow.com/questions/2387431/spring-autowiring-class-vs-interface by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 MVC - HttpMediaTypeNotAcceptableException (0) | 2018.12.05 |
---|---|
[SPRING] Springboot / Angular2 - HTML5 URL 처리 방법 (0) | 2018.12.05 |
[SPRING] Spring Boot + Spring Security 애플리케이션에서 CORS를 구성하는 방법은 무엇입니까? (0) | 2018.12.05 |
[SPRING] 톰캣에 전개 된 스프링 부트 전쟁 (0) | 2018.12.05 |
[SPRING] 비동기 태스크 실행 프로그램에서 요청 범위를 사용하는 방법 (0) | 2018.12.05 |