interface的@Resource
时间: 2023-09-21 11:09:47 浏览: 92
回答:在使用@Resource注解时,如果注解没有指定name属性,则使用@Resource注解的类将会根据类型来装配对应的bean。这意味着如果有多个实现了该接口的bean存在时,会出现装配的问题。为了解决这个问题,可以自定义选择一个最优的bean,例如选择第一个实现类,通过继承DependencyDescriptor并重写方法,然后在BeanPostProcessor中选择自定义的子类作为实现。这样在使用@Resource注解且没有指定属性时,即使存在多个实现类的bean,也不会抛出异常。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [@Resource详解-代码示例](https://blog.csdn.net/fanbaodan/article/details/121845028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [@Resource详解](https://blog.csdn.net/ljcgit/article/details/115353149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]