gpt4 book ai didi

java - 如何使用 Spring Boot 在运行时修改 @Qualifer 值

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

假设我有三个 bean 和一个用于测试的类。

@Service
@Qualifier("G1")
Public class GlA1 implements GLAInterface {// code...}

@Service
@Qualifier("G2")
Public class GlA2 implements GLAInterface {// code...}

@Service
@Qualifier("G3")
Public class GlA3 implements GLAInterface {// code...}

// the test class

public class Test{

@Autowired
@Qualifier("x") // x = G1 or G2 or G3
private GLAInterface gla;
}

直到运行时我才会知道 x 的值。您知道如何动态注入(inject)依赖项吗?

最佳答案

public class Test{
@Autowired
private ApplicationContext applicationContext;
private GLAInterface gla;

@Test
public void aTest() {
gla = getGlaBean("G1");
}

@Test
public void aTest2() {
gla = getGlaBean(System.getenv("GLA_BEAN_NAME"));
}


GLAInterface getGlaBean(String name) {
return (GLAInterface) applicationContext.getBean(name);
}
}

关于java - 如何使用 Spring Boot 在运行时修改 @Qualifer 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57676211/

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