我有一个带有@Component注释的Service类,这个bean依赖于这样的DAO:
@Component
public class CustomerService
{
@Setter
private CustomerDAO customerDAO;
}
和XML文件是这样的:
<context:component-scan base-package="com.mkyong.customer" />
<bean id="customerDAO" class="com.mkyong.customer.dao.CustomerDAO" autowire="byName"></bean>
但是,在应用程序运行后,现场customerDAO无法注入。如果我将@Setter
替换为@Resource
,那就没问题了。我深深怀疑,为什么@Componet
bean不能注入setter方法。
我使用的是Spring 2.5.6;
答案 0 :(得分:1)
为了注入setter,你必须创建一个setter并用@Autowired
注释它。
@Component
public class CustomerService {
private CustomerDAO customerDAO;
@Autowired
public void setCustomerDAO(CustomerDAO customerDAO) {
this.customerDAO = customerDAO;
}
}