在Spring应用程序中,如果两个程序员开发两个包,将@Repository注释为相同的类名,Spring将抛出“IllegalStateException”:
注解指定的bean名称
'mybean' 代表 bean 类
[foobar.package1.mybean] 冲突
与现有的、不兼容的 bean
相同名称和类的定义
[foobar.package2.mybean]
一种解决方案是在 @Repository 中添加额外的值,例如@Repository("package1.mybean")
and @Repository("package2.mybean")
,但我正在寻找一种更有效的解决方案,可以自动缓解这种情况。我希望该解决方案能够实现以下目标:
程序员可以在他的包中任意命名他们的bean className,而不管名称是否与其他包(程序员)冲突。这样程序员就不需要大喊“嘿,我要使用 bean 名称 XXXXX,不要与我冲突”。
无需手动分配 XML bean 名称。
- 如果bean名称可以自动分配给类的完整类名,那就太好了。
有任何想法吗 ?谢谢。
(春季3)
在您的配置中的某个位置,您已经启用了类路径扫描,可能使用
<context:component-scan>
您可以指定一个名为name-generator
,它需要一个实现了BeanNameGenerator
界面。创建您自己的该接口的实现并提供对其的引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)