目录

spring-boot控制bean的创建顺序

1、order注解(不一定有效)

复制代码
org.springframework.core.annotation.Order

2、dependsOn注解(有效)

复制代码
org.springframework.context.annotation.DependsOn

3、提前将bean注册为BeanDefinition

java 复制代码
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
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
code喵喵几秒前
架构设计系列
java
陳長生.25 分钟前
JAVA EE_初始网络原理
java·开发语言·网络·java-ee
菜鸟起航ing37 分钟前
【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化详解 - 3-5年Java开发必备知识
java·spring boot·微服务·性能优化·分布式事务
其实你热情似火37 分钟前
Java基础第20天-JDBC
java·数据库·oracle
观无1 小时前
基于AOP+Log4Net+AutoFac日志框架
java·大数据·数据库
Java中文社群1 小时前
SpringAI版本更新:向量数据库不可用的解决方案!
java·人工智能·后端
王磊鑫1 小时前
重返JAVA之路——图书管理系统
java·开发语言
听闻风很好吃1 小时前
Java设计模式之观察者模式:从入门到架构级实践
java·观察者模式·设计模式
艺杯羹1 小时前
JDBC 初认识、速了解
java·数据库·jdbc
陵易居士1 小时前
Spring如何解决项目中的循环依赖问题?
java·后端·spring