spring @Autowired
Posted 吃人陈乐游刘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring @Autowired相关的知识,希望对你有一定的参考价值。
一.@Autowired解决的问题是不同接口实现类之间引用的问题,自动装配--》注入对象
可以这样理解:本质上就是UserServiceImpl如何联系使用UserDaoImpl的对象
1.UserServiceImpl接口实现类
@Service("userService")
public class UserServiceImpl implements IUserService
@Autowired
private IUserDao dao;
@Override
public String queryUser()
return dao.queryUser();
2.UserDaoImpl接口实现类
@Repository("userdao")
public class UserDaoImpl implements IUserDao
String name;
int age;
public UserDaoImpl(@Value("张小源")String name,@Value("19") int age)
super();
this.name = name;
this.age = age;
@Override
public String queryUser()
// 模拟查询到一个用户
return "name="+name+",age="+age;
一开始是按照dao进行查找,很不方便,及时我定义了一个userdao它也找不到。下面的@Qualifier会解决这个问题。看我下一篇文章。
总结:@Autowired自动装配,让UserServiceImpl接口实现类和UserDaoImpl接口实现类联系起来,实现的功能是xml配置文件里面的ref的功能等同于下面的代码
<bean id="userService"
class="com.bookmanagesystem.service.impl.UserServiceImpl">
<constructor-arg name="dao" ref="userDao"></constructor-arg><!--
实际上是等同于创建了一个new UserServiceImpl(dao) -->
</bean>
<bean id="userDao"
class="com.bookmanagesystem.dao.impl.UserDaoImpl">
</bean>
以上是关于spring @Autowired的主要内容,如果未能解决你的问题,请参考以下文章
Spring不能直接@autowired注入Static变量问题和解决方案
Spring不能直接@autowired注入Static变量问题和解决方案