gpt4 book ai didi

java - 使定义的 spring bean 成为主要的

转载 作者:行者123 更新时间:2023-12-01 16:47:34 25 4
gpt4 key购买 nike

我在 spring.xml 中定义了 3 个相同类型的 bean。这是一个 jar 文件,我无法编辑。我想使用注释将其中之一作为我的 spring-boot 应用程序的主要内容。有办法做到吗?

最佳答案

一种简单的方法是使用桥接配置,它将所需的 Bean 注册为新的主 Bean。一个简单的例子:

界面:

public interface Greeter { String greet(); }

您无法控制的配置:

@Configuration
public class Config1 {
@Bean public Greeter british(){ return () -> "Hi"; }
@Bean public Greeter obiWan(){ return () -> "Hello there"; }
@Bean public Greeter american(){ return () -> "Howdy"; }
}

桥配置:

@Configuration
public class Config2 {
@Primary @Bean public Greeter primary(@Qualifier("obiWan") Greeter g) {
return g;
}
}

客户端代码:

@RestController
public class ControllerImpl {
@Autowired
Greeter greeter;

@RequestMapping(path = "/test", method = RequestMethod.GET)
public String test() {
return greeter.greet();
}
}

curl http://localhost:8080/test 的结果将是

Hello there

关于java - 使定义的 spring bean 成为主要的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47084553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com