gpt4 book ai didi

springBoot启动时让方法自动执行的几种实现方式

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 39 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章springBoot启动时让方法自动执行的几种实现方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在springBoot中我们有时候需要让项目在启动时提前加载相应的数据或者执行某个方法,那么实现提前加载的方式有哪些呢?接下来我带领大家逐个解答 。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
@Component
public class TestStarted implements ServletContextAware {
   /**
    * 在填充普通bean属性之后但在初始化之前调用
    * 类似于initializingbean的afterpropertiesset或自定义init方法的回调
    *
    */
   @Override
   public void setServletContext(ServletContext servletContext) {
     System.out.println( "setServletContext方法" );
   }
}

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

2.实现ServletContextListener接口 。

?
1
2
3
4
5
6
7
8
/**
  * 在初始化Web应用程序中的任何过滤器或servlet之前,将通知所有servletContextListener上下文初始化。
  */
@Override
public void contextInitialized(ServletContextEvent sce) {
   //ServletContext servletContext = sce.getServletContext();
   System.out.println( "执行contextInitialized方法" );
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Component
public class Test2 {
   //静态代码块会在依赖注入后自动执行,并优先执行
   static {
     System.out.println( "---static--" );
   }
   /**
    * @Postcontruct'在依赖注入完成后自动调用
    */
   @PostConstruct
   public static void haha(){
     System.out.println( "@Postcontruct'在依赖注入完成后自动调用" );
   }
}

4.实现ApplicationRunner接口 。

?
1
2
3
4
5
6
7
8
/**
  * 用于指示bean包含在SpringApplication中时应运行的接口。可以定义多个applicationrunner bean
  * 在同一应用程序上下文中,可以使用有序接口或@order注释对其进行排序。
  */
@Override
public void run(ApplicationArguments args) throws Exception {
   System.out.println( "ApplicationRunner的run方法" );
}

5.实现CommandLineRunner接口 。

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

到此这篇关于springBoot启动时让方法自动执行的几种实现方式的文章就介绍到这了,更多相关springBoot启动时自动执行内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cnblogs.com/lsgspace/p/10508180.html 。

最后此篇关于springBoot启动时让方法自动执行的几种实现方式的文章就讲到这里了,如果你想了解更多关于springBoot启动时让方法自动执行的几种实现方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com