博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring IOC注入接口多实现解决
阅读量:6654 次
发布时间:2019-06-25

本文共 1030 字,大约阅读时间需要 3 分钟。

  前期面试的时候被面试官问到,Spring注入某接口,而接口有多实现,应该如何处理。接口多实现很常见,但在业务逻辑开发中,需要考虑注入某接口的多个实现问题的情况并不多见。当时是一脸懵逼,目前有时间,就做出整理如下:

  解决这一问题的关键在于:@Qualifier注解。需传入value,值为接口对应实现类的bean_name。搭配@Autowired指向具体实现类在spring容器中的bean。

  注意:如果注入的接口有多个实现,而未用@Qualifier去指定具体某一个,编译期报错。

  关于Qualifier注解:

/** * This annotation may be used on a field or parameter as a qualifier for * candidate beans when autowiring. It may also be used to annotate other * custom annotations that can then in turn be used as qualifiers. * * @author Mark Fisher * @author Juergen Hoeller * @since 2.5 * @see Autowired */@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface Qualifier {    String value() default "";}

  实际使用代码如下:

@Qualifier("userServiceImpl")    @Autowired    private UserService userService;    @Qualifier("userServiceTestImpl")    @Autowired    private UserService userServiceTest;

转载于:https://www.cnblogs.com/nyatom/p/9070733.html

你可能感兴趣的文章
pythonGUI编程打开默认浏览器
查看>>
5200 fqy的难题----2的疯狂幂
查看>>
java运行jar命令提示没有主清单属性
查看>>
apache基本安装配置
查看>>
C++ 数组指针
查看>>
几何画板中绘制过圆上点的切线的技巧
查看>>
ABBYY FineReader 12中的用户模式你会用吗
查看>>
ElasticSearch的各种服务的URL
查看>>
Alpha 冲刺报告(5/10)
查看>>
HTML5 应用程序缓存
查看>>
jmeter 跨线程组调用变量
查看>>
Linux运维-Rsync+Inotify
查看>>
51nod 最大子矩阵和(动态规划)
查看>>
JS模块与命名空间的介绍二
查看>>
C#中的委托(一)
查看>>
linux中 bashrc文件的alias添加快捷命令
查看>>
Python Number 类型转换
查看>>
第三个Sprint冲刺第三天
查看>>
与文件有关的基本API总结
查看>>
udev
查看>>