因为自身做项目要用到,所以收集了一下大概有三种,目前使用 实现ApplicationRunner接口形式。
有一点小坑,因为我要调用的方法是要从配置文件中取值才行,但是这个实现ApplicationRunner接口形式 调用方法,会优先于从配置文件中取值,调用的时候会报空指针异常,所以目前只能将参数从run方法执行的时候就传进去才可以顺利执行。
- 需要在类上加上component注解实例化到spring容器中
代码实现
import com.UdpRecieve.controller.LoginController; import com.UdpRecieve.domain.LoginSendInfo; import com.UdpRecieve.utils.MyHttpUtil; 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; import java.util.HashMap; import java.util.Map; /** * 说明:启动运行 * 作者:FH Admin * from:fhadmin.cn */ @Component @Order(2) public class MyApplicationRunnerImpl implements ApplicationRunner { @Autowired private LoginSendInfo loginSendInfo; @Override public void run(ApplicationArguments args) throws Exception { System.out.println("开始执行MyApplicationRunnerImpl-run方法"); Map<String, Object> loginInfoMap = new HashMap<>(); loginInfoMap.put("usrName", "123456"); loginIsSuccess(loginInfoMap, loginSendInfo.getUrl()); System.out.println("----loginIsSuccess方法执行----\n" + (success ? "登录成功" : "登录失败")); System.out.println("MyApplicationRunnerImpl-run方法执行完毕"); } }