首页 注解学习
文章
取消

注解学习

注解学习


@Component 与 @Service 相同 一般注入的时候不写value值。

  1. 注入 一般是标记在实现类上(一般类)上,不能注入接口。因为接口不能实例化。

@Autowired

  1. 引用 将上述注入到spring容器中的实例获取。
  2. 且 一情况下用在 接口层 应为接口都是由实现类 去实现接口。
  3. 也可直接引用某个一般类 相当于对改类 直接 new()实例化。
  4. 若该接口只有一个实现类 则注解该接口 则直接实例的是这个接口的实现类。
  5. 若该接口有多个实现类 则需要通过在 @Autowired 下加 @Qualifier(“ 实现类名称”) 这样才能找到正确的实现类。则根据类型确定是否有相应的实现类。

@Resource

  1. 引用 将上述注入到spring容器中的实例获取。
  2. 且 一情况下用在 接口层 应为接口都是由实现类 去实现接口。
  3. 也可直接引用某个一般类 相当于对改类直接 new()实例化。
  4. 若该接口只有一个实现类 则注解该接口,则直接实例的是这个接口的实现类。
  5. 若该接口有多个实现类 则需要通过在 @Resource(name = “ 实现类名称”)这样才能找到正确的实现类。即根据名称找,再根据实现类。

Java 代码

1
2
3
4



总结

针对多个实现类的接口无论是@Autowired or @Resource 都要说明要引用的是哪个实现类,当然也可以使用工厂模式实现对实现列问题。如果想实现对于多实现类的调用,最为简单的则是利用@Resource(name = “实现类名称”)。

参考博客:

  1. https://www.cnblogs.com/aland-1415/p/11991170.html
  2. https://juejin.cn/post/7134940044179013668
本文由作者按照 CC BY 4.0 进行授权

二分法

快速排序