[SPRING] Spring @Autowired는 bean을 이름 또는 유형별로 주입합니까?
SPRINGSpring @Autowired는 bean을 이름 또는 유형별로 주입합니까?
나는 봄 (wiley press) 서적을 읽고있다. 2 장에는 예제가있다. Java 구성 및 @Autowired에 대해 설명합니다. 이 @Configuration 클래스를 제공합니다.
@Configuration
public class Ch2BeanConfiguration {
@Bean
public AccountService accountService() {
AccountServiceImpl bean = new AccountServiceImpl();
return bean;
}
@Bean
public AccountDao accountDao() {
AccountDaoInMemoryImpl bean = new AccountDaoInMemoryImpl();
//depedencies of accountDao bean will be injected here...
return bean;
}
@Bean
public AccountDao accountDaoJdbc() {
AccountDaoJdbcImpl bean = new AccountDaoJdbcImpl();
return bean;
}
}
및이 정규 bean 클래스
public class AccountServiceImpl implements AccountService {
@Autowired
private AccountDao accountDao;
public void setAccountDao(AccountDao accountDao) {
this.accountDao = accountDao;
}
...
}
코드를 실행하면 작동합니다. 하지만 구성에 같은 유형의 빈을 두 개 정의했기 때문에 예외가 예상됩니다.
나는 다음과 같이 작동한다는 것을 깨달았다.
이 잘못 아닌가? Spring에서 Java 구성을 처리 할 때 버그가 있습니까?
해결법
-
==============================
1.설명서에 설명되어 있습니다.
설명서에 설명되어 있습니다.
그래서, 아니, 그것은 버그가 아니며 의도 한 행동입니다. by-type autowiring이 일치하는 하나의 bean을 찾지 못하면 bean id (name)가 fallback으로 사용됩니다.
from https://stackoverflow.com/questions/30360589/does-spring-autowired-inject-beans-by-name-or-by-type by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring RestTemplate에서 응답을 어떻게 로그합니까? (0) | 2019.03.19 |
---|---|
[SPRING] 스프링 MVC가있는 JSP 페이지의 스타일 시트 포함 (0) | 2019.03.19 |
[SPRING] Spring MVC에서 글로벌 모델 속성을 설정하는 최선의 방법은 무엇입니까? (0) | 2019.03.19 |
[SPRING] JPA @ 버전 : 사용 방법은? (0) | 2019.03.19 |
[SPRING] 응용 프로그램 컨텍스트에 속성을 추가하는 방법 (0) | 2019.03.19 |