面試題- Springboot 啓動完成之後去執行某些操作

Springboot 啓動完成之後去執行某些操作

1 啓動類調用實現

public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
		// 啓動完成調用自定義方法
		ConditionTest conditionTest = SpringBeanUtil.getBean(ConditionTest.class);
		conditionTest.test();
	}

2 繼承 CommandLineRunner

import com.cdchen.study.service.ConditionTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 *
 * @description: ConditionTest
 *
 * @author: cdchen
 *
 * @create: 2019-05-24 11:19
 **/
@Component
public class ConditionTestRunner implements CommandLineRunner {
    @Autowired
    private ConditionTest conditionTest;
    @Override
    public void run(String... strings) throws Exception {
    // 啓動完成調用自定義方法
        conditionTest.test();
    }
}

3 繼承 ApplicationRunner

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
/**
 *
 * @description: ApplicationRunner
 *
 * @author: cdchen
 *
 * @create: 2019-05-24 16:20
 **/
 @Component
public class ApplicationTestRunner implements ApplicationRunner, Ordered {
    @Override
    public int getOrder(){
        return 1;//通過設置這裏的數字來知道指定順序
    }

    @Override
    public void run(ApplicationArguments var1) throws Exception{
        System.out.println("MyApplicationRunner1!");
    }

}

可通過繼承Order接口進行 runner排序,也可以使用@Order註解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章