Tôi đang đọc sách bắt đầu mùa xuân (wiley press). Trong chương 2 có một ví dụ về cấu hình Java và @Autowired
. Nó cung cấp @Configuration
lớp nàyCó phải Spring @Autowired tiêm đậu theo tên hoặc theo loại không?
@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;
}
}
và lớp này đậu thường xuyên
public class AccountServiceImpl implements AccountService {
@Autowired
private AccountDao accountDao;
public void setAccountDao(AccountDao accountDao) {
this.accountDao = accountDao;
}
...
}
Khi tôi chạy mã này, nó hoạt động. Nhưng tôi mong đợi một ngoại lệ vì tôi đã xác định 2 hạt có cùng loại trong cấu hình.
tôi nhận ra nó hoạt động như thế này:
- nếu mùa xuân gặp nhiều đậu với cùng loại nó sẽ kiểm tra tên trường.
- nếu tìm thấy đậu có tên của trường mục tiêu, nó sẽ đưa hạt đó vào trường.
Điều này không đúng? Có lỗi trong xử lý cấu hình Java của Spring không?