spring注解---自动装配@Autowired注解 &@Qualifier注解&@Primary注解

PS:自动装配,完成的是各个组件之间的依赖关系的赋值。至于基本数据的赋值可以通过其他赋值方式比如@Value实现。

1 @Autowired注解:

     1.1  使用:Controller层调用Service层,然后调用Dao层。由于表示了@Controller相关注解,注册到了容器中,通过@Autowired注解,可以实现自动装配。

@Controller
public class BookController {
	@Autowired
	private BookService bookService;
}
@Service
public class BookService {
	@Autowired
	private BookDao bookDao;
}
@Repository
public class BookDao {
}

    1.2 原理。

         自动装配的时候,默认按照类型去容器中找对应的类型。《====》app.getBean(BookController.class);

          如果该类型只存值一个bean,那么就自动装配。

         如果同一个类型存在多个bean,首先按照类型匹配,存在多个,按照属性名匹配

2 @Qualifier注解

      PS:通常和@Autowired搭配使用。

       使用背景:自动装配时候,默认在按照类型自动装配,如果存在一个就自动装配。如果存在多个,解决方法有二。

       方法一:按照属性名匹配

       方法二:使用@Qualifier注解明确地指明想要标注的是哪个组件。

@Qualifier("bookService")
private BookService bookService;

3 @Primary注解

      作用:使用该注解在容器中,同一个类型存在多个组件时,默认装配哪个组件。

      背景:容器中存在BookService 类型bookService1和bookService2,就可以使用@Primary注解,指定默认装配bookService2。

     PS:然后,还是可以通过@Qualifier注解指定最终装配哪个bean。

	@Bean
	@Primary
	public BookService bookService2() {
		BookService bookService = new BookService();
		bookService.setLable("lable2");
		return bookService;
	}

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值