gpt4 book ai didi

java - 以编程方式将 POJO 转换为 @Configuration Spring

转载 作者:行者123 更新时间:2023-11-30 02:29:08 24 4
gpt4 key购买 nike

给定一个类:

class MyConfiguration {
@Bean
String bean() {
return new String();
}
}

您可能会注意到它没有 @Configuration 注释。

我怎样才能让它表现得像有@Configuration注释,但添加它?

@Bean 注释不应在 Lite 模式 中工作,https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Bean.html

类似于:

@Configuration
class MainConfiguration {
@Bean
MyConfiguration myConfiguration() {
MyConfiguration myConfiguration = do_some_spring_magic();
// myConfiguration behaving like it's having @Configuration here
return myConfiguration;
}
}

最佳答案

我不明白你想要在这里实现的用例是什么。但是如果你正在寻找以编程方式将bean注册到Spring上下文中,那么你可以按照下面的方式进行操作。

@Configuration
public class MyBeanRegisterFactory implements BeanDefinitionRegistryPostProcessor, PriorityOrdered {

@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanRegistry) throws BeansException {
//depending on some condition you can do the below line
beanRegistry.registerBeanDefinition("myBeanClass", new RootBeanDefinition("com.mybean.MyBeanClass"));
}

@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;
}
}

在您的情况下,类 MyConfiguration 中的 bean 定义可以通过编程方式注册到 spring 上下文中,如下所示。

http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/support/BeanDefinitionRegistryPostProcessor.html

关于java - 以编程方式将 POJO 转换为 @Configuration Spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44724352/

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