使用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,並且實現注入。