spring 或者spring boot 调整bean加载顺序的方式

 更新时间:2023年03月01日 10:37:02   作者:zhongzunfa  
这篇文章主要介绍了spring 或者spring boot 调整bean加载顺序的方式,本文通过实例代码讲解三种调整类加载顺序的方式,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

spring 或者spring boot 调整bean 的加载顺序

接下来讲解三种调整类加载顺序的方式:

1、使用@Order调整配置类加载顺序

@Configuration
@Order(1)
public class ConfigA {
    @Bean
    public ServiceA serviceA(){
        System.out.println("ConfigA 执行");
        return new ServiceA();
    }
}
@Configuration
@Order(2)
public class ConfigB {
    @Bean
    public ServiceB serviceB(){
        System.out.println("ConfigB 执行");
        return new ServiceB();
    }
}

2、使用@Order调整配置类加载顺序

@Configuration
public class Config {
    @Bean
    @Order(1)
    public CListener bListener(){
        return new CListener();
    }

     @Bean
     @Order(2)
    public DListener dListener(){
        return new DListener();
    }
}

3、实现ordered 接口:

public class AListener implements ApplicationListener<ContextRefreshedEvent>, Ordered {

    private CuratorManagerComponent curatorManagerComponent;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {

        logger.info("AListener 执行了。");

    }

    @Override
    public int getOrder() {

        return HIGHEST_PRECEDENCE;
    }
}
public class BListener implements ApplicationListener<ContextRefreshedEvent>, Ordered {

    private CuratorManagerComponent curatorManagerComponent;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {

        logger.info("BListener 执行了。");

    }

    @Override
    public int getOrder() {

        return HIGHEST_PRECEDENCE + 2;
    }
}

@Configuration
public class Config {

    @Bean
    public BListener bListener(){
        return new BListener();
    }

     @Bean
    public AListener aListener(){
        return new AListener();
    }
}

对于实现ordered方式, 的需要在 getOrder 返回数值, 数值越小说明优先级越高。

到此这篇关于spring 或者spring boot 调整bean加载顺序的方式的文章就介绍到这了,更多相关spring boot bean加载顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 非常全面的Java SpringBoot点赞功能实现

    非常全面的Java SpringBoot点赞功能实现

    但是这些功能再项目中是高频出现的,如果直接操作数据库的话,对数据库压力太大。那遇到这个问题怎么解决?这篇文章主要给大家介绍了关于Java SpringBoot点赞功能实现 的相关资料,需要的朋友可以参考下
    2022-01-01
  • SpringCloud OpenFeign Post请求400错误解决方案

    SpringCloud OpenFeign Post请求400错误解决方案

    这篇文章主要介绍了SpringCloud OpenFeign Post请求400错误解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 浅谈Redis在微服务架构中的几种应用场景

    浅谈Redis在微服务架构中的几种应用场景

    本文介绍在SpringCloud中使用Redis作为Pub/Sub异步通信、缓存或主数据库和配置服务器的三种场景应用。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Java异常类型介绍及处理方法

    Java异常类型介绍及处理方法

    这篇文章介绍了Java异常类型介绍及处理方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • SpringBoot整合POI实现Excel文件读写操作

    SpringBoot整合POI实现Excel文件读写操作

    EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具,这篇文章主要介绍了SpringBoot整合POI实现Excel文件读写操作,首先准备环境进行一系列操作,本文给大家介绍的非常详细,需要的朋友参考下吧
    2023-10-10
  • Java中@Async异步失效的9种场景

    Java中@Async异步失效的9种场景

    最近在项目某个方法使用@Async注解,但是该方法还是同步执行了,异步不起作用,到底是什么原因呢?接下来本文给大家介绍了Java @Async异步失效的9种场景,需要的朋友可以参考下
    2024-05-05
  • java.io.IOException: UT010029: Stream is closed异常分析及解决

    java.io.IOException: UT010029: Stream is closed异常分析及解决

    这篇文章主要给大家介绍了关于java.io.IOException: UT010029: Stream is closed异常分析及解决办法,文中通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-02-02
  • Java中各种集合判空方法总结

    Java中各种集合判空方法总结

    最近接触集合比较多,经常对于集合是否为空做判断,下面这篇文章主要给大家介绍了关于Java中各种集合判空方法总结的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • idea连接数据库的操作方法

    idea连接数据库的操作方法

    这篇文章主要介绍了idea如何连接数据库,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • MyBatis多对多映射初识教程

    MyBatis多对多映射初识教程

    这篇文章重点给大家介绍mybatis多对多映射,多对多映射的例子也很常见,本文通过代码实例相结合的方式给大家介绍mybatis多对多映射,需要的朋友参考下吧
    2016-08-08

最新评论