java如何强制库类在自动连接中使用bean
我在应用程序中遇到了一个场景,我调用了一个库类方法,该方法使用带有@Qualifier
注释的自动连接。在我的例子中,行为是完全相同的,但是自动连线bean应该是不同的。这个自动连线bean只调用一个REST服务
我尝试用几个简单的类来展示场景:
public interface IMessage {
public String getMessage();
}
public class HelloMessage implements IMessage {
public String getMessage() {
return "Hello";
}
}
public class HiMessage implements IMessage {
public String getMessage() {
return "Hi";
}
}
public class PrintMessage {
@Qualifier("helloMessage")
@Autowired
private IMessage message;
public void service() {
System.out.println(message.getMessage());
}
}
假设所有这些类都属于库。我试图实现的唯一一件事是HiMessage
bean在PrintMessage
类中自动连接。重写这个类将是一个简单的解决方案,但是由于service()
方法的行为完全相同,所以我不想仅仅为了使用不同的自连线bean而重写它
# 1 楼答案
例如,在以下情况下,有必要提供限定符
希望这对你有帮助。干杯
# 2 楼答案
在
@Configuration
类中,创建一个@Bean("helloMessage")
注释的方法,该方法只返回所需的bean:或者使用参数注入,如果所需对象已被称为
hiMessage
: