@autowired注解 怎么生效
1个回答
2017-06-30
展开全部
使用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,并且实现注入。
可以使用@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,并且实现注入。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询