2016-03-13 71 views
0

我有@Component註釋的服務類,而這個bean依賴這樣的DAO:彈簧自動線失敗時注入依賴bean成@Component java類

@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不能被注入。如果我用@Resource替換@Setter,那就沒問題。我深深的懷疑,爲什麼@Componet bean不能用setter方法注入。

我正在使用Spring 2.5.6;

+0

XML文件:<上下文:組分掃描基包= 「com.mkyong.customer」/> \t <豆ID = 「customerDAO」 類=「com.mkyong.customer.dao.CustomerDAO 「autowire =」byName「> – xiaozhu

+0

Spring中沒有'@ Setter'註釋。 「@ Component」和「@ Resource」是同義詞。 '@ Resource'是JSR-250的註釋,Spring只是支持它。 –

回答

1

爲了注入setter,你必須創建一個setter並用@Autowired註釋它。

@Component 
public class CustomerService { 

    private CustomerDAO customerDAO; 

    @Autowired 
    public void setCustomerDAO(CustomerDAO customerDAO) { 
     this.customerDAO = customerDAO; 
    } 
} 
相關問題