Spring使用@Component和@Bean创建时SpringBean如何设置多个id,即创建好几个一样,但是ID不一样的bean。试过@AliasFor好像没法用在类上。
在Spring中,一个Bean只能有一个ID,但可以有多个别名。别名可以通过以下两种方式设置:
在Bean的定义中,使用alias标签设置别名【针对xml方式】:
<bean id="myBean" class="com.example.MyBean" />
<alias name="myBean" alias="alias1" />
<alias name="myBean" alias="alias2" />
在XML配置文件中使用alias标签设置别名:
<alias name="myBean" alias="alias1" />
<alias name="myBean" alias="alias2" />
<bean id="myBean" class="com.example.MyBean" />
另外你也参考一下这个文章内的配置:https://blog.csdn.net/simle_hi/article/details/115602133
【针对注解的方式】:
可以通过在注解中使用@Qualifier注解来设置多个id。
例如:
@Component
@Qualifier("bean1")
@Qualifier("bean2")
public class MyBean {
// ...
}
在上面的代码中,MyBean被标记为一个组件,并且有两个限定词(即id):bean1和bean2。在其他组件中,可以使用这些限定词来注入MyBean:
@Component
public class MyOtherBean {
@Autowired
@Qualifier("bean1")
private MyBean bean1;
@Autowired
@Qualifier("bean2")
private MyBean bean2;
// ...
}
详细参看一下 《限定自动装配bean》https://potoyang.gitbook.io/spring-in-action-v4/di-3-zhang-gao-ji-zhuang-pei/untitled-3/untitled-1
另外也详细看一下 https://www.cnblogs.com/jackcharles/p/8583903.html 里面的这个章节:三、处理自动装配有歧义的bean
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!