1. 程式人生 > >SpringBoot專案啟動時自動執行指定方法

SpringBoot專案啟動時自動執行指定方法

在SpringBoot中,有兩種介面方式實現啟動執行,分別是ApplicationRunner和CommandLineRunner,除了可接受引數不同,其他的大同小異

ApplicationRunner :

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import
java.util.Date; /** * 繼承Application介面後項目啟動時會按照執行順序執行run方法 * 通過設定Order的value來指定執行的順序 */ @Component @Order(value = 1) public class StartService implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { System.out.println(new Date()); } }

CommandLineRunner:

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class MyCommandLineRunner implements CommandLineRunner,Ordered{


    @Override
    public int getOrder(){
        return 1;//返回執行順序
    }

    @Override
public void run(String... var1) throws Exception{ System.out.println(new Date()); } }

我們也可以設定Order來設定執行的順序,在上面兩個程式碼中也有,分別是註解@Order(value = 1)和實現介面implements Ordered的方式,個人喜歡註解,簡單明瞭。

在我們實現的run方法中,可以寫我們執行的內容或者是呼叫已經寫好的方法,個人建議將要執行的內容抽成方法額外寫出來,畢竟啟動時要執行的方法可能不止一個。

相關推薦

SpringBoot專案啟動自動執行指定方法

在SpringBoot中,有兩種介面方式實現啟動執行,分別是ApplicationRunner和CommandLineRunner,除了可接受引數不同,其他的大同小異 ApplicationRunner : import org.springfr

spring在專案啟動執行特定方法

如何在專案啟動時就執行特定方法 1. 方法上加註解@PostConstruct @Compant public class InitDemo{ @PostConstruct

web專案啟動執行某個方法

1.監聽(Listener) web檔案新增 <listener>      <listener-class>cn.ro.common.InitListener</listener-class>   </l

SpringBoot入門十一,啟動自動執行指定程式碼

Springboot設定啟動後自動執行指定程式碼,可以呼叫這兩個介面:  ApplicationRunner  CommandLineRunner他們的執行時機為容器啟動完成的時候,這裡使用ApplicationRunner來實現需要的效果,直接上程式碼: import org.springfra

SpringBoot入門十一,啟動自動執行指定代碼

自動 err pro code watermark 技術分享 cep not cache Springboot設置啟動後自動執行指定代碼,可以調用這兩個接口:  ApplicationRunner  CommandLineRunner他們的執行時機為容器啟動完成的時候,這裏

springWeb專案啟動自動載入方法及web專案啟動不能獲得spring的bean的解決方式

方式一:利用註解的方式和構造方法 @Service("testService") public class TestService { @Autowired private Service service; /** * spring在初始化bea

Spring mvc + mybatis web專案當系統啟動自動呼叫某個方法

1、新增WebContextListener.java2、檔案內容package com.pt.controller.listener; import javax.servlet.ServletCon

springboot專案啟動成功後執行一段程式碼的兩種方式

springboot專案啟動成功後執行一段程式碼的兩種方式   實現ApplicationRunner介面 package com.lnjecit.lifecycle; import org.springframework.boot.ApplicationArguments; i

Mybatis與springboot專案啟動出現Field XXX in com.xxx that could not be found

Mybatis與springboot專案,啟動時報錯,詳細的錯誤如下: Field xxx in com.xxxl required a bean of type ‘xxx’ that could no

Docker-mysql啟動自動執行SQL

說明 在用docker建立mysql容器的時,有時候我們期望容器啟動後資料庫和表會自動構建,初始化資料也已自動錄入,也就是說容器啟動後我們就能直接連上容器中的資料庫,使用其中的資料了。自動執行SQL這一過程存在於第一次使用映象構建容器時,下一次restart容器時則不會存在

Springmvc專案啟動後定時執行某個方法

需求:在資料庫中有一個表儲存定時釋出的資訊和定時釋出的時間,在專案釋出後,每過5分鐘定時讀一次資料庫,如果到了定時釋出時間就操作釋出。比如定時釋出某幾篇文章,資料庫就儲存文章的id串以及釋出時間.本文知識呼叫了java.util.Timer類,不能在指定時間執行,使用較多還是

Spring MVC讓Web容器啟動自動執行程式碼

在web.xml中,對於每一個servlet都有一個load-on-startup屬性,其值為一個整數。若該值為0或正整數,則當Web容器啟動時,該servlet會自動載入,並呼叫其中的init()方

【Java】—— java Web 啟動自動執行程式碼的幾種方式(總有些程式碼需要在虛擬機器啟動執行)

Web容器啟動後執行程式碼的幾種方式其執行順序為:4===>5===>1===>2===>3即指定init-method的Bean開始執行接著實現Spring的Bean後置處理器開始執行然後是Servlet的監聽器執行再接下來是Servlet的過濾器執

實現tomcat啟動自動執行程式碼

方法1:tomcat 自動執行servlet 寫一個servlet,在init()方法中寫好想要執行的程式,程式如下: eclipse新建一個web\Dynamic Web Project , name = myweb1 , 把tomcat中的 servlet-api.jar複製到lib中,新建一個類MyS

web專案啟動自動啟動mysql資料庫

背景介紹:    最近在學習spring,看到容器事件ApplicationEvent時,突然想到一個問題,因為在本地搭建了一套學習環境,每次啟動web專案時都要首先手動啟動mysql,有時忘了啟動mysql時,控制檯就會丟擲資料庫連線失敗的異常資訊,所以就在想,能否利用容器

SpringBoot——專案啟動讀取配置及初始化資源

# 介紹   在開發過程中,我們有時候會遇到非介面呼叫而出發程式執行任務的一些場景,比如我們使用`quartz`定時框架通過配置檔案來啟動定時任務時,或者一些初始化資源場景等觸發的任務執行場景。 # 方法一:註解 ### 方案   通過使用註解`@Configuration`和`@Bean`來初始化資源,配

Springboot專案啟動自動建立多表關聯的資料庫與表的方案

文/朱季謙   熬夜寫完,尚有不足,但仍在努力學習與總結中,而您的點贊與關注,是對我最大的鼓勵!   在一些專案開發當中,存在這樣一種需求,即開發完成的專案,在第一次部署啟動時,需能自行構建系統需要的資料庫及其對應的資料庫表。 若要解決這類需求,其實現在已有不少開源框架都能實現自動生成資料

springboot專案啟動,自動執行某個方法中的某個類

package com.trs.idap.web.rest.controller; import com.trs.idap.service.GetCarInfoFromKEDAService; import org.springframework.beans.factory.annotation.

springboot專案啟動後第一次執行controller方法進入很慢

原因: tomcat的session生成策略問題, 轉載:   文章地址: https://my.oschina.net/malq/blog/1614127                  

Java專案啟動執行指定方法的幾種方式

很多時候我們都會碰到需要在程式啟動時去執行的方法,比如說去讀取某個配置,預載入快取,定時任務的初始化等。這裡給出幾種解決方案供大家參考。 1. 使用@PostConstruct註解 這個註解呢,可以在Spring載入這個類的時候執行一次。來看一下下方程式碼。