springboot项目启动后执行特定方法
有时项目需求,需要项目启动的时候向数据库中查询一下系统属性,或者需要加载某个特定的方法。那么在springboot中可以用如下方法实现
第一种实现,实现ApplicationRunner 接口
package com.dzqc.yx.controller;
import com.dzqc.yx.service.impl.StudentServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
*项目启动执行
*/
@Component
@Order(value = 1) //执行顺序控制
public class Test1 implements ApplicationRunner {
@Override
public void run(ApplicationArguments applicationArguments){
System.out.println("启动");
}
}
第二种实现,实现CommandLineRunner 接口
package com.dzqc.yx.controller;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value=2)
public class Test2 implements CommandLineRunner {
@Override
public void run(String... var1) throws Exception {
System.out.println("启动2");
}
}
相同点:这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法。我们可以通过实现ApplicationRunner和CommandLineRunner,来实现,他们都是在SpringApplication 执行之后开始执行的。
不同点:CommandLineRunner接口可以用来接收字符串数组的命令行参数,ApplicationRunner 是使用ApplicationArguments 用来接收参数的
