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

2025-05-29 0 73

在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启动自动执行内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 springBoot启动时让方法自动执行的几种实现方式 https://www.kuaiidc.com/108544.html

相关文章

发表评论
暂无评论