自启动加载数据库数据到项目内存中:
1.应用场景:其实一般来说配置中心就可以解决很多自启动的一些配置参数等等。但是有的比较大的内容放配置文件中去读感觉不是很合理。目前我自己的应用场景就是把一些需要的参数装载到自己的静态全局变量中。方便使用。
2.步骤-(个人建议新建一个包。我的命名就叫start,方便后面查看)
//定义Spring管理Bean
@Component
//实现ApplicationRunner接口-实现初始化加载该类
public class XxStart implements ApplicationRunner {
//这里是你注入你操作数据库的方法 也可以在下面业务代码中自己写,看你们用的框架了
@Autowired
private XxService xxService;
@Override
public void run(ApplicationArguments args) throws Exception {
try{
这里是你的业务代码
}catch(Exception e){
这里是异常
}
}
初始化加载线程:
1.应用场景:这个就看每个人自己的业务需求了。。。
2.关于原理网上太多了 我就不详细写了,直接贴步骤。推荐一个写的比较好的:https://blog.csdn.net/liyantianmin/article/details/81017960
第一步:
public class XxStartup implements ApplicationListener<ContextRefreshedEvent> {
/**
* 业务代码
*/
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
ApplicationContext ac = event.getApplicationContext();
//把你需要的线程先加载进来 springboot初始化装配之后直接启动。
ServerExceptionThread serverExceptionThread = ac.getBean(XxThread.class);
Thread thread = new Thread(serverExceptionThread);
thread.start();
}
第二步:自己的线程类 该干嘛干嘛。。。
第三步:
@SpringBootApplication
public class XxApplication {
public static void main(String[] args) {
SpringApplication springApplication =new SpringApplication(XxApplication.class);
//添加进启动
springApplication.addListeners(new XxStartup());
springApplication.run(args);
}
}
以上所有的类命名都是乱取的。。。随便记录一下。希望能帮助到需要的朋友