最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot項目啟動時執(zhí)行指定的方法

 更新時間:2025年08月07日 10:41:20   作者:濤哥是個大帥比  
本文介紹了在SpringBoot項目中通過@PostConstruct注解和實現(xiàn)CommandLineRunner接口來在啟動時執(zhí)行方法,具有一定的參考價值,感興趣的可以了解一下

項目場景:

本文介紹Spring Boot項目啟動時執(zhí)行指定的方法兩種常用方式和他們之間的區(qū)別。

實現(xiàn)方案:

方式一:使用注解@PostConstruct

@Component
public class PostConstructTest {
    @PostConstruct
    public void postConstruct() {
		System.out.println("啟動時自動執(zhí)行  @PostConstruct 注解方法");
    }
}

優(yōu)點: 簡單方便,加上一個注解就行了。

缺點:如果@PostConstruct方法內(nèi)的邏輯處理時間較長,就會增加SpringBoot應用初始化Bean的時間,進而增加應用啟動的時間。因為只有在Bean初始化完成后,SpringBoot應用才會打開端口提供服務,所以在此之前,應用不可訪問。

建議:輕量的邏輯可放在Bean的@PostConstruct方法中,耗時長的邏輯如果放在@PostConstruct方法中,可使用@Async異步方法。

使用異步代碼示例:

@Service
public class TestService {
 
    @Async("testAsync")  //指定線程池
    public void test() {
        System.out.println("------------------------異步方法開始 " + Thread.currentThread().getName());
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("----------------異步方法執(zhí)行完了" + Thread.currentThread().getName());
    }
}
@Component
public class PostConstructTest {

	@Autowired
    private TestService testService;
	
    @PostConstruct
    public void postConstruct() {
		System.out.println("啟動時自動執(zhí)行  @PostConstruct 注解方法");
		testService.test();
    }
}

Spring Boot中多個PostConstruct注解執(zhí)行順序控制

方式二:實現(xiàn)CommandLineRunner接口

@Component
public class CommandLineRunnerImpl implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
		System.out.println("啟動時自動執(zhí)行 CommandLineRunner 的 run 方法");
    }
}

優(yōu)點: 項目已經(jīng)初始化完畢,才會執(zhí)行方法,所以不用等這個方法執(zhí)行完,就可以正常提供服務了。

缺點:暫未發(fā)現(xiàn)。

到此這篇關(guān)于SpringBoot項目啟動時執(zhí)行指定的方法的文章就介紹到這了,更多相關(guān)SpringBoot項目啟動時執(zhí)行指定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

视频| 临猗县| 抚州市| 拜城县| 青田县| 根河市| 外汇| 黑山县| 乌鲁木齐县| 东平县| 琼结县| 封开县| 赤壁市| 宾川县| 贵阳市| 电白县| 辰溪县| 滨州市| 安岳县| 湘乡市| 南昌市| 东乌珠穆沁旗| 台东市| 楚雄市| 罗田县| 芜湖县| 阿巴嘎旗| 柳江县| 临沭县| 上杭县| 罗源县| 柳河县| 航空| 宜黄县| 岗巴县| 祥云县| 山阴县| 柞水县| 石首市| 辽阳市| 昭通市|