java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot bean创建顺序

springboot控制bean的创建顺序

作者:DavidSoCool

本文主要介绍了spring-boot控制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创建顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文