spring boot在启动项目之后执行的实现方法

时间:2022-06-27 12:30:08

前言

我们在web项目启动之后有时候还会做点其它的东西(比如,导入数据脚本),下面就说说spring-boot里怎么在程序启动后加入自己要执行的东西

方法如下:

新建一个类:BeforeStartup.java

?
1
2
3
4
5
6
7
8
9
10
11
12
@Configuration
public class BeforeStartup implements ApplicationListener<ContextRefreshedEvent> {
 
 @Autowired
 private InitDB initDB;
 
 @Override
 public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
  initDB.createUser();
 }
 
}

InitDB.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Component
public class InitDB {
 
 Logger log = Logger.getLogger(MyInvocationSecurityMetadataSource.class);
 
 @Autowired
 private UserService userService;
 
 // create user
 public void createUser() {
  User user = new User();
  user.setAvatar("aaa");
  user.setBlock(false);
  user.setEmail("aaa");
  user.setInTime(new Date());
  user.setPassword("1111");
  user.setSignature("1111");
  user.setUrl("222");
  user.setUsername("bb");
  userService.save(user);
 }
}

再配合一个变量记录系统是否初始化过,如果初始化了,就不再初始化了,这样就可以做到启动系统之后再自动将默认数据插入,很是方便

相关代码参见:https://github.com/tomoya92/pybbs

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:https://tomoya92.github.io/2017/02/20/spring-boot-startup/