gpt4 book ai didi

java - 使用 java @Configuration 类定义别名

转载 作者:行者123 更新时间:2023-11-30 03:32:39 24 4
gpt4 key购买 nike

我正在尝试模仿 @Configuration 类中 Spring XML 别名的行为。

我在 XML 中有一个别名,如下所示:

<alias name="${com.some.bean}" alias="myBean"/>

我有一个看起来像这样的 @Configuration 类:

@Configuration
public class MyConfig {
@Lazy
@Bean(name = "bean1")
public MyBean bean1() { return new MyBean(); }

@Lazy
@Bean(name = "bean2")
public MyBean bean2() { return new MyBean(); }
}

我想动态加载 bean1bean2 并给加载别名 myBean 的那个。根据com.some.bean属性的解析。使用 XML 很容易做到,但我找不到等效的 @Configuation

注意:我不想使用配置文件,因为这不是我的系统当前的工作方式,并且目前无法更改所有属性解析以使用配置文件而不是属性文件。

最佳答案

一个丑陋的解决方法是定义一个 @Bean ,它接收作为 @Value 的属性值并自行执行解析

@Bean("myBean")
public MyBean myBean(@Value("${com.some.bean}") String value) {
if (value.equals("bean1"))
return bean1();
else if (value.equals("bean2"))
return bean2();
else {
throw new RuntimeException("nope, something went wrong");
}
}

关于java - 使用 java @Configuration 类定义别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28659833/

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