Spring自动注入,@Autowired

相信大家经常使用Spring自动注入功能,来完成service层和controller层的交互,但很多人并不知道其中的原理是什么,为什么要这样用。

其实他的本质是一种面向接口编程的实例应用。

什么是面向接口编程,请查看我的博客中的其他文章。

声明接口
public interface TestService{
		public void sayHi();
} 
实现类1
@Service("First")
public class TestServiceImplFirst implements TestService{
		public void sayHi(){
			System.out.println("Hi,First");
}
实现类2
@Service("Second")
public class TestServiceImplSecond implements TestService{
		public void sayHi(){
			System.out.println("Hi,Second");
}






public class testController{
	@Autowired
	private TestService testService;
}
}
此时如果只有一个实现类的时候,是可以实现自动注入的。但如果有两个实现类则不行。需要修改testController的代码为
public class testController{
	@Autowired
	@Qualifier("First")
	private TestService testService;
}
则可以自动注入第一个实现类。
这到底是什么原理呢,其实不难,只是这样一个过程。
具体是什么过程呢,请看我博客中的面向接口编程就懂了。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值