介绍
本篇内容介绍了“springBoot启动时让方法自动执行的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在springBoot中我们有时候需要让项目在启动时提前加载相应的数据或者执行某个方法,那么实现提前加载的方式有哪些呢?接下来我带领大家逐个解答
1。实现ServletContextAware接口并重写其setServletContext方法
@ component public class  TestStarted implements ServletContextAware  { ,/* * ,,*,在填充普通豆属性之后但在初始化之前调用 ,,*,类似于initializingbean的afterpropertiesset或自定义初始化方法的回调 ,,* ,,*/@Override才能 public 才能;void  setServletContext (ServletContext servletContext), { ,,,System.out.println (“setServletContext方法“); ,,} }
注意:该方法会在填充完普通豆的属性,但是还没有进行Bean的初始化之前执行
2。实现ServletContextListener接口
,/* * ,,*,在初始化Web应用程序中的任何过滤器或servlet之前,将通知所有servletContextListener上下文初始化。 ,,*/@Override才能 public 才能;void  contextInitialized (ServletContextEvent sce), { ,,,//ServletContext ServletContext =, sce.getServletContext (); ,,,System.out.println(“执行contextInitialized方法“); 以前,,}>3。将要执行的方法所在的类交个春容器扫描(@ component),并且在要执行的方法上添加@PostConstruct注解或者静态代码块执行
@ component public class  Test2 {//才能静态代码块会在依赖注入后自动执行,并优先执行 静态{才能 ,,,System.out.println(“静态——“); ,,} ,/* * ,,*,@Postcontruct& # 39;在依赖注入完成后自动调用 ,,*/@PostConstruct才能 public 才能static void 哈哈(){ ,,,System.out.println (“@Postcontruct& # 39;在依赖注入完成后自动调用“); ,,} }4。实现ApplicationRunner接口
,/* * ,,*,用于指示bean包含在SpringApplication中时应运行的接口。可以定义多个applicationrunner bean ,,*,在同一应用程序上下文中,可以使用有序接口或@order注释对其进行排序。 ,,*/@Override才能 public 才能;void 运行(ApplicationArguments args), throws Exception { ,,,System.out.println (“ApplicationRunner的运行方法“); 以前,,}>5。实现CommandLineRunner接口
,/* * ,,*,用于指示bean包含在SpringApplication中时应运行的接口。可以在同一应用程序上下文中定义多个commandlinerunner bean,并且可以使用有序接口或@order注释对其进行排序。 ,,*,如果需要访问applicationArguments而不是原始字符串数组,请考虑使用applicationrunner。 ,,*, ,,*/@Override才能 public 才能;void 运行(字符串…,),throws Exception { ,,,System.out.println (“CommandLineRunner的运行方法“); 以前,,}>springBoot启动时让方法自动执行的方法