springboot控制bean的创建顺序
1、order注解(不一定有效)
org.springframework.core.annotation.Order
2、dependsOn注解(有效)
org.springframework.context.annotation.DependsOn
3、提前将bean注册为BeanDefinition
1、实现BeanDefinitionRegistryPostProcessor,将userService注册
public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
beanDefinition.setBeanClass(UserService.class);
registry.registerBeanDefinition("userService", beanDefinition);
}
}2、加入上下文中
public class MyApplicationContextInitializer implements ApplicationContextInitializer {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
applicationContext.addBeanFactoryPostProcessor(new MyBeanDefinitionRegistryPostProcessor());
}
}3、配置扫描生效,在resources下创建MATE-INF文件夹,在MATE-INF文件夹下创建spring.factories文件,然后加入下面的配置
org.springframework.context.ApplicationContextInitializer=com.example.springbootshutdown.MyApplicationContextInitializer org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
到此这篇关于springboot控制bean的创建顺序的文章就介绍到这了,更多相关springboot bean创建顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring Cloud Data Flow初体验以Local模式运行
这篇文章主要介绍了Spring Cloud Data Flow初体验以Local模式运行,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08
java:程序包org.apache.ibatis.annotations不存在报错解决
这篇文章主要给大家介绍了关于java:程序包org.apache.ibatis.annotations不存在报错的解决方法,这个错误是我在直接导入springboot项目的时候报错的,文中通过图文介绍的非常详细,需要的朋友可以参考下2023-04-04
浅谈spring-boot 允许接口跨域并实现拦截(CORS)
本篇文章主要介绍了浅谈spring-boot 允许接口跨域并实现拦截(CORS),具有一定的参考价值,有兴趣的可以了解一下2017-08-08
Spring定时任务@scheduled多线程使用@Async注解示例
这篇文章主要为大家介绍了Spring定时任务@scheduled多线程使用@Async注解示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-11-11
MyBatis Generator配置生成接口和XML映射文件的实现
本文介绍了配置MBG以生成Mapper接口和XML映射文件,过合理使用MBG和自定义生成策略,可以有效解决生成的Example类可能带来的问题,使代码更加简洁和易于维护2025-02-02


最新评论