启动时
1.实现CommandLineRunner接口
@Component
@Order(1)
public class CommandLineRunnerTest implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("这是测试CommandLineRunner的示例。");
}
}
2.实现ApplicationRunner接口
@Component
@Order(2)
public class ApplicationRunnerTest implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("这是测试ApplicationRunner接口");
}
}
@Order注解:如果有多个实现类,而你需要他们按一定顺序执行的话,可以在实现类上加上@Order注解。@Order(value=整数值)。SpringBoot会按照@Order中的value值从小到大依次执行。也就是先执行 1 再执行 2
@Component注解:把普通pojo实例化到spring容器中,泛指各种组件,就是说当我们的类不属于各种归类的时候(@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
结束时
1.实现DisposableBean接口
@Component
public class DisposableBeanTest implements DisposableBean {
@Override
public void destroy() throws Exception {
System.out.println("springboot程序结束 implements DisposableBean ");
}
}
2.通过@PreDistroy注解
@Component
public class ExitCode{
@PreDestroy
public void exit(){
System.out.println("springboot程序结束 执行@PreDestroy");
}
}