一. 方式一

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;

@Component
@Order(1)	// 如果有多个类实现了ApplicationRunner接口,可以使用此注解指定执行顺序
public class SysEhcacheInit implements ApplicationRunner {

	@Override
	public void run(ApplicationArguments args) throws Exception {
		System.out.println("SysEhcacheInit执行时启动了~~");
	}
}

注意:代码中的@Order代表执行优先级,越小优先级越高 效果如下:

二. 方式二

实现接口:ApplicationListener 监听事件:ApplicationReadyEvent 注意:   方式一的ApplicationRunner和CommandLineRunner在ApplicationReadyEvent之前执行

ApplicationListener<ApplicationReadyEvent>

代码:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

@Component
public class ProjectInfo implements ApplicationListener<ApplicationReadyEvent> {
	@Override
	public void onApplicationEvent(ApplicationReadyEvent event) {
		System.out.println("ProjectInfo信息执行了");
	}
}

注意,实现了ApplicationListener<ApplicationReadyEvent>接口的类,执行顺序在所有实现了ApplicationRunner接口的后面,如图:

Application事件监听请移步SpringBoot入门二十四,Application事件监听