java - 我们可以在子构造函数javaspring中更改父bean的自动装配吗?
问题描述
我对 Spring 中的注释有疑问。我似乎无法使用 @Qualifier 注释更新对象。让我们做一个我的问题的精简版:
假设我有一个看起来像这样的父 java 类:
public class test {
@Autowired
protected object x;
}
使用这样的构造函数扩展父类的子类:
public class testChild extends test {
@Autowired
public testChild(@Qualifier("y") Object y) {
this.x = y;
}
还有 2 个 Bean,一个带有 @Primary 注释,另一个带有 @Bean(Name="y")。
带有 @Primary 注释的 Bean 似乎总是被应用,因为父级具有未指定限定符的自动装配,并且我在构造函数中收到的 bean 也是主要的,有没有办法让 bean @Qualifier("y") 与子类不修改父类?
解决方案
不是您想要的方式,不 - 解决方案是停止使用@Primary
并仅@Qualifier
在任何地方使用 s 。或者您可以@Profile
用于为不同的配置文件创建不同的 bean。但是每当你使用 @Primary 时,它就会成为主 bean,这就是注释的重点。
推荐阅读
- python - 如何在python中拆分字符串并仅提取一个单词?
- node.js - https.request to onesignal 在 aws lambda 上返回超时
- javascript - 变量和函数的名称
- wso2 - 如何更新 wso2is 组件
- android - 我编译我的 kivy 应用程序在使用 buildozer 编译到 android 应用程序时显示空白
- python-3.x - 鼠标光标指向方法或函数时的python 3.8上下文帮助
- python - 列表理解和“所有”关键字
- android - 如何避免在单个事件的视图模型上使用 LiveData?
- c# - 如何在 C# 中异步执行 MSCRM 工作流
- apache-spark - 用于存储类似日志的 Parquet 行组大小