久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

springBoot啟動時讓方法自動執行的幾種實現方式

瀏覽:97日期:2023-03-21 17:58:38

在springBoot中我們有時候需要讓項目在啟動時提前加載相應的數據或者執行某個方法,那么實現提前加載的方式有哪些呢?接下來我帶領大家逐個解答

1.實現ServletContextAware接口并重寫其setServletContext方法

@Componentpublic class TestStarted implements ServletContextAware { /** * 在填充普通bean屬性之后但在初始化之前調用 * 類似于initializingbean的afterpropertiesset或自定義init方法的回調 * */ @Override public void setServletContext(ServletContext servletContext) { System.out.println('setServletContext方法'); }}

注意:該方法會在填充完普通Bean的屬性,但是還沒有進行Bean的初始化之前執行 

2.實現ServletContextListener接口

/** * 在初始化Web應用程序中的任何過濾器或servlet之前,將通知所有servletContextListener上下文初始化。 */ @Override public void contextInitialized(ServletContextEvent sce) { //ServletContext servletContext = sce.getServletContext(); System.out.println('執行contextInitialized方法'); }

3.將要執行的方法所在的類交個spring容器掃描(@Component),并且在要執行的方法上添加@PostConstruct注解或者靜態代碼塊執行

@Componentpublic class Test2 { //靜態代碼塊會在依賴注入后自動執行,并優先執行 static{ System.out.println('---static--'); } /** * @Postcontruct’在依賴注入完成后自動調用 */ @PostConstruct public static void haha(){ System.out.println('@Postcontruct’在依賴注入完成后自動調用'); }}

4.實現ApplicationRunner接口

/** * 用于指示bean包含在SpringApplication中時應運行的接口。可以定義多個applicationrunner bean * 在同一應用程序上下文中,可以使用有序接口或@order注釋對其進行排序。 */ @Override public void run(ApplicationArguments args) throws Exception { System.out.println('ApplicationRunner的run方法'); }

5.實現CommandLineRunner接口

/** * 用于指示bean包含在SpringApplication中時應運行的接口。可以在同一應用程序上下文中定義多個commandlinerunner bean,并且可以使用有序接口或@order注釋對其進行排序。 * 如果需要訪問applicationArguments而不是原始字符串數組,請考慮使用applicationrunner。 * */ @Override public void run(String... ) throws Exception { System.out.println('CommandLineRunner的run方法'); }

到此這篇關于springBoot啟動時讓方法自動執行的幾種實現方式的文章就介紹到這了,更多相關springBoot啟動時自動執行內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 南雄市| 塔河县| 绵阳市| 宁安市| 昭觉县| 万山特区| 剑川县| 达日县| 靖安县| 建德市| 南江县| 安远县| 泸定县| 法库县| 工布江达县| 河津市| 平舆县| 精河县| 修水县| 东兰县| 阜新| 依安县| 仙居县| 镇平县| 镇雄县| 阜康市| 金沙县| 嘉禾县| 威远县| 临澧县| 襄樊市| 龙岩市| 江都市| 三河市| 积石山| 马山县| 鄂伦春自治旗| 南充市| 丰台区| 雅安市| 长阳|