将依赖bean注入@component java类时,spring auto-wire失败

时间:2016-03-13 06:58:56

标签: spring components

我有一个带有@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;

1 个答案:

答案 0 :(得分:1)

为了注入setter,你必须创建一个setter并用@Autowired注释它。

@Component
public class CustomerService {

    private CustomerDAO customerDAO;

    @Autowired
    public void setCustomerDAO(CustomerDAO customerDAO) {
        this.customerDAO = customerDAO;
    }
}