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

Spring不能直接@autowired注入Static变量问题和解决方案

Spring不能直接@autowired注入Static变量问题和解决方案

Spring(七)

Maven 工程下 Spring MVC 站点配置 C3P0连接池与@Autowired的应用

Spring探索丨既生@Resource,何生@Autowired?