Java 通过编程方式将POJO转换为@Configuration
给定一个类:Java 通过编程方式将POJO转换为@Configuration,java,spring,spring-boot,Java,Spring,Spring Boot,给定一个类: class MyConfiguration { @Bean String bean() { return new String(); } } 正如您可能注意到的,它没有@配置注释 我如何使它表现得像有@Configuration注释,但不添加它 @Bean注释不应在精简模式下工作 比如: @Configuration class MainConfiguration { @Bean MyConfiguration myConf
class MyConfiguration {
@Bean
String bean() {
return new String();
}
}
正如您可能注意到的,它没有@配置
注释
我如何使它表现得像有@Configuration
注释,但不添加它
@Bean
注释不应在精简模式下工作
比如:
@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上下文中,如下所示