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 VS @Resource

spring autowired怎么按照name注入

整理:spring注解 @Autowired @Qualifier @Resource

Spring注解——@Autowired

@autowired注解 怎么生效

spring 代码中获取ApplicationContext(@AutoWired,ApplicationListener)