使用Spring時,通過Spring注入的Bean一般都被定義成private,並且要有getter和setter方法,顯得比較繁瑣,增加了代碼量,而且有時會搞忘造成錯誤。
可以使用@Autowired注解來減少代碼量。首先,在applicationContext中加入:
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
Spring使用這個BeanPostProcessor解析@Autowired注解。
然後,在變量上添加@Autowired注解,並去掉相應的getter和setter方法:
package com.school.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.school.dao.ClasDAO;
import com.school.entity.Clas;
public class ClasServiceImpl implements ClasService{
@Autowired
private ClasDAO clasDAO;
...
}
並且在applicationContext中將相應的<property></property>標簽去掉:
<bean id="clasService" class="com.school.service.ClasServiceImpl">
</bean>
Spring啟動時,AutowiredAnnotationBeanPostProcessor會掃描所有的Bean,當發現其中有@Autowired注解時,就會找相應類型的Bean,並且實現注入。