`
java开发者SSM
  • 浏览: 14458 次
文章分类
社区版块
存档分类
最新评论

SpringBoot 启动过程执行某函数(四种解决方案)

 
阅读更多

1、实现ServletContextAware接口并重写其setServletContext方法

@Component
public classTestStartedimplementsServletContextAware{
    /**
     * 在填充普通bean属性之后但在初始化之前调用
     * 类似于initializingbean的afterpropertiesset或自定义init方法的回调
     *
     */
    @Override
    publicvoidsetServletContext(ServletContext servletContext){
        System.out.println("setServletContext方法");
    }
}

注意:该方法会在填充完普通Bean的属性,但是还没有进行Bean的初始化之前执行

2、实现ServletContextListener接口

/**java项目www.fhadmin.org
 * 在初始化Web应用程序中的任何过滤器或servlet之前,将通知所有servletContextListener上下文初始化。
 */
@Override
publicvoidcontextInitialized(ServletContextEvent sce) {
    //ServletContext servletContext = sce.getServletContext();
    System.out.println("执行contextInitialized方法");
}

3、将要执行的方法所在的类交个spring容器扫描(@Component),并且在要执行的方法上添加@PostConstruct注解或者静态代码块执行

//java项目www.fhadmin.org
@Component
public classTest2{
    //静态代码块会在依赖注入后自动执行,并优先执行
    static{
        System.out.println("---static--");
    }
    /**
     *  @Postcontruct’在依赖注入完成后自动调用
     */
    @PostConstruct
    publicstaticvoidhaha(){
        System.out.println("@Postcontruct’在依赖注入完成后自动调用");
    }
}

4、实现ApplicationRunner接口

/**java项目www.fhadmin.org
 * 用于指示bean包含在SpringApplication中时应运行的接口。可以定义多个applicationrunner bean
 * 在同一应用程序上下文中,可以使用有序接口或@order注释对其进行排序。
 */
@Override
publicvoidrun(ApplicationArguments args) throws Exception{
    System.out.println("ApplicationRunner的run方法");
}

5、实现CommandLineRunner接口

/**
 * 用于指示bean包含在SpringApplication中时应运行的接口。可以在同一应用程序上下文中定义多个commandlinerunner bean,并且可以使用有序接口或@order注释对其进行排序。
 * 如果需要访问applicationArguments而不是原始字符串数组,请考虑使用applicationrunner。
 * java项目www.fhadmin.org
 */
@Override
publicvoidrun(String... ) throws Exception{
    System.out.println("CommandLineRunner的run方法");
}

 

分享到:
评论

相关推荐

    Springboot编辑Postgis的空间数据.rar

    【标签】"开源GIS"提示我们,这里讨论的是一个开放源代码的地理信息系统解决方案。开源GIS提供了与商业GIS软件相媲美的功能,并且具有可定制性、灵活性和成本效益高的优势。在Spring Boot和PostGIS的结合中,开发者...

    基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码设计.zip

    自研工作流引擎意味着项目团队已经根据实际需求设计并实现了自己的流程管理解决方案,这可能包含了流程设计、任务调度、状态跟踪和权限控制等多个方面。 文件名"code"表明压缩包内包含的是源代码,这可能涵盖Spring...

    vert.x结合springboot开发mqtt服务,真实可用

    总的来说,结合Vert.x和Spring Boot开发MQTT服务,可以充分利用两者的优势,构建出高效、可扩展的物联网解决方案。通过理解这些核心概念和技术点,你将能够成功地搭建并维护一个实用的MQTT服务器。

    基于SpringBoot的软件统计分析系统设计与实现

    Beetl提供了一种简洁的模板语法,易于学习和使用,而且执行效率高。Beetl的特性包括:支持自定义函数和宏,可以很容易地扩展其功能;支持条件、循环等逻辑控制;拥有强大的字符串处理和正则表达式功能等。本文介绍的...

    图书管理系统,前端用的vue,后端用的springboot.zip

    【图书管理系统】是一种常见的信息化解决方案,它主要用于存储、管理和检索图书馆内的各类图书信息。在这个项目中,前端采用了Vue.js框架,而后端则是基于SpringBoot框架。Vue.js是现代JavaScript前端框架,而...

    基于springboot的IT技术交流和分享平台源码数据库.zip

    总之,这个基于SpringBoot的IT技术交流和分享平台融合了多种现代Web开发技术,提供了一个完整的从前端到后端的解决方案。无论是对初学者还是有经验的开发者,都能从中学习到很多实用的技术和最佳实践。

    springboot2简单例子(beetsql,webFlux)

    **SpringBoot2简介** SpringBoot是由Pivotal团队提供的全新框架,其设计目标是用来简化Spring应用的初始搭建以及开发过程。...在实际开发中,可以根据具体需求灵活选择和配置,以实现最佳的解决方案。

    本科毕业设计,基于Springboot的可扩展(用户可自主构建数据库表)的数据管理系统

    Layui是一个轻量级、模块化的前端UI解决方案,它提供了丰富的组件,如表格、表单、按钮、图标等,帮助快速构建美观的用户界面。在这个系统中,Layui被用于展示数据,提供用户交互界面,如创建表单、查看数据图表等...

    SpringBoot整合neo4j电影演员导演关系.docx

    Neo4j是一个基于Java语言的图形数据库,它在全球范围内被誉为领先的图形数据库解决方案。它提供了高性能的图形存储,并具备成熟和强大的数据库功能,如Cypher查询语言和ACID事务。相比于传统的关系型数据库,Neo4j在...

    springBoot 与neo4j的简单整合示例

    SpringBoot与Neo4j的整合是现代Web应用中常见的数据存储解决方案,特别是在处理复杂网络结构数据时。Neo4j是一个高性能的图形数据库,它利用图形数据模型来存储和查询关系数据,非常适合处理具有多对多关系的数据...

    学废SpringBoot+Redis+Lua=王炸(值得珍藏)

    Spring Boot结合Redis和Lua提供了一套高效、可靠的解决方案,用于构建现代化的应用程序。通过利用Redis的高性能存储和Lua的脚本执行能力,开发者可以简化复杂业务逻辑,提高应用程序的响应速度和稳定性。这样的组合...

    解决SpringBoot2多线程无法注入的问题

    以下是一些解决方案: 1. **通过ApplicationContext获取Bean**: 一种常见的方式是在线程类的构造函数或者初始化方法中,通过ApplicationContextProvider来获取需要的Bean。如代码所示,`...

    openfaas-springboot-graalvm:用于Spring Boot + RSocket + GraalVM的OpenFaas模板

    对于OpenFaas这种需要快速启动和停止的场景,GraalVM原生镜像是理想的解决方案。 将这三个技术结合到OpenFaas模板中,开发者可以创建出高性能、低延迟的函数服务。OpenFaas提供了简洁的接口和工作流程,使得Spring ...

    yyds-mqtt-starter.zip

    综上所述,yyds-mqtt-starter项目提供了一个基于SpringBoot的MQTT RPC解决方案,它利用MQTT协议的特性进行网络通信,并通过同步请求方式保证服务调用的确定性。项目还支持广播模式,使得消息可以高效地分发到多个...

    基于JavaScript的物业管理微信小程序源码数据库.zip

    综上所述,这个压缩包提供了一个综合的物业管理微信小程序解决方案,涵盖了前端开发、后端服务构建、数据库管理和移动应用兼容性等多个IT领域的知识点。开发者可以通过研究这个源码库来学习和实践相关技术,或者直接...

    杭州批发零售行业Java开发工程师岗位介绍JD模板.pdf

    - **SpringCloud**:提供了一套微服务解决方案,支持服务发现、配置管理、熔断、路由等功能,帮助构建分布式系统。 - **Vue/React**:Vue和React都是流行的前端框架,用于构建用户界面,它们都支持组件化开发,...

    barefoot:在没有 springboot 或 webserver/tomcat 的情况下托管 spring-mvc RestControllers-开源

    标题中的“barefoot”是一个独特的框架,它提供了一种在没有Spring Boot或传统的Web服务器(如Tomcat)的情况下运行...对于熟悉Spring MVC但希望探索轻量级解决方案的开发者来说,这是一个值得关注和学习的新方向。

    千锋最新版spring6.0框架GA版详解.pdf

    AOT(Ahead-Of-Time)编译是一种在应用程序运行之前执行的编译过程。在Spring框架中,AOT主要用于提高应用程序的启动速度和运行效率。 2. **GraalVM** GraalVM是一个高性能的JVM实现,支持多语言开发,并且能够...

    spring核心思想

    总的来说,Spring的核心思想是通过DI实现松耦合,提高代码的可测试性和可维护性,而AOP则为解决横切关注点提供了优雅的解决方案。这两个概念构成了Spring框架的基础,并且在实际项目开发中起着至关重要的作用。通过...

    JAVA面试题.zip

    Spring Cloud是基于Spring Boot实现的一套微服务解决方案,包含配置管理、服务发现、断路器、智能路由、微代理、控制总线等组件。面试中可能关注: - Eureka:服务注册与发现。 - Ribbon:客户端负载均衡器。 - ...

Global site tag (gtag.js) - Google Analytics