首页 > 其他分享 >springboot 中,ApplicationRunner、InitializingBean、@PostConstruct 执行顺序

springboot 中,ApplicationRunner、InitializingBean、@PostConstruct 执行顺序

时间:2023-12-27 15:56:29浏览次数:33  
标签:InitializingBean run springboot PostConstruct afterPropertiesSet ApplicationRunn

划水。。。

ApplicationRunner、InitializingBean、@PostConstruct 执行顺序

InitializingBean 是 Spring 提供的一个接口,它只有一个方法 afterPropertiesSet(),该方法会在容器初始化完成后被调用。 
ApplicationRunner 是 Spring Boot 提供的一个接口,它有一个方法 run(),该方法会在 Spring Boot 应用程序启动完成后被调用。 
@PostConstruct 是 Java 提供的一个注解,它可以标注在方法上,该方法会在 bean 初始化完成后被调用。 

执行顺序:
@PostConstruct
InitializingBean#afterPropertiesSet()
ApplicationRunner#run()

代码demo

@Component
public class MyBean implements InitializingBean, ApplicationRunner {

    @Override
    public void afterPropertiesSet() {
        System.out.println("InitializingBean#afterPropertiesSet()");
    }

    @Override
    public void run(ApplicationArguments args) {
        System.out.println("ApplicationRunner#run()");
    }

    @PostConstruct
    public void postConstruct() {
        System.out.println("@PostConstruct");
    }
}

标签:InitializingBean,run,springboot,PostConstruct,afterPropertiesSet,ApplicationRunn
From: https://www.cnblogs.com/linzm14/p/17930736.html

相关文章

  • springboot注解表达式
    ("execution(*com.aop..*.*(..))")1、execution():表达式主体2、第一个*号:表示返回类型,*号表示所有的类型3、.包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包4、第二个*号:表示类名,号表示所有的类5、.*(..):最后这个星号表示方法名,号表示所有的方法,后......
  • SpringBoot内置Tomcat启动原理
    SpringBoot内置Tomcat启动原理当依赖Spring-boot-starter-web依赖时会在SpringBoot中添加:ServletWebServerFactoryAutoConfigurationservlet容器自动配置类该自动配置类通过@Import导入了可用(通过@ConditionalOnClass判断决定使用哪一个)的一个Web容器工厂在内嵌Tomc......
  • SpringBoot入门实战:SpringBoot服务层设计
    1.背景介绍SpringBoot是一个用于构建Spring应用程序的优秀框架。它的目标是简化Spring应用程序的开发,使其易于部署和扩展。SpringBoot提供了许多有用的工具,可以帮助开发人员更快地构建和部署应用程序。在本文中,我们将讨论SpringBoot服务层设计的核心概念、算法原理、具......
  • springboot项目Mapper注入失败:@org.springframework.beans.factory.annotation.Autowi
    同事发给我一个项目,说启动时,报mapper无法注入,让我帮忙排查一下问题记录一下我自己遇到这个问题的排查顺序首先先排除以下问题:1.mapper类是否加入到ioc容器中(有没有使用@Mapper标签),如果报错是service层,那就看看是不是没有添加server标签2.检查项目是否扫描mapper类所在......
  • SpringBoot自动配置原理
    通过@SpringBootConfiguration引入了@EnableAutoConfiguration(负责启动自动配置功能)@EnableAutoConfiguration引入了@Import注解Spring容器启动时:加载Ioc容器时会解析@Import注解@Import导入了一个deferredImportSelector,会使SpringBoot的自动配置类的顺序再最后,这样方便......
  • 一些基于SpringBoot2.X的后台管理系统,可以作为高校毕设项目、个人学习之用
    该酒店管理系统适用于各类酒店管理,用于提高酒店内部工作效率。主要是针对酒店内部工作人员即管理员和酒店普通员工设计的。主要是具备客房预订、退房、房间信息管理、员工管理、入住管理等模块,提高了酒店内部业务的运转效率,大大降低了成本;该系统基于SpringBoot+VUE+MyBatisPlus......
  • SpringBoot的编码方式
     方式1.使用配置文件的方式对字符进行编码1.第一种方式:在配置文件中(properties或者yaml文件中均可)添加:server.servlet.encoding.enable=true但是现如今的许多程序已经弃用了这种写法2.第二种方式:server.servlet.encoding.charset=UTF-8;server.servlet.encoding.force=......
  • 浅聊springboot的启动流程
    前言本文会对Springboot启动流程进行详细分析。但是请注意,Springboot启动流程是Springboot的逻辑,请千万不要将Springboot启动流程相关逻辑与Spring的相关逻辑混在一起,比如把Spring的bean生命周期的逻辑混在Springboot启动流程中,那么整个体系就复杂且混乱了。所以本文仅重点关注Spri......
  • SpringBoot实现热部署详解
    前言SpringBoot热部署是一种开发时极为有用的功能,它能够让开发人员在代码修改后无需手动重启应用程序就能立即看到变化的效果。以下是使用SpringBoot热部署的几个主要原因:1.提高开发效率热部署使开发人员能够更快地验证和测试他们的代码更改。无需手动重启应用程序,每次修改后只需......
  • springboot自动部署脚本
    #!/bin/sh##javaenvexportJAVA_HOME=/usr/local/jdk/jdk1.8.0_101exportJRE_HOME=$JAVA_HOME/jreAPI_NAME=apiJAR_NAME=$API_NAME\.jar#PID代表是PID文件PID=$API_NAME\.pid#使用说明,用来提示输入参数usage(){echo"Usage:sh执行脚本.sh[start|stop|re......