在Spring Boot启动后执行指定代码
2016-05-13 16:39
585 查看
在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据等等。
在Spring中可以通过ApplicationListener来实现相关的功能,不过在配合Spring Boot使用时就稍微有些区别了。
这里以填充部分测试数据为例子,首先实现
这类并不会自动执行,需要我们注册。
硬编码的弊端在于无法区别环境,当我们需要部署应用到生产环境时需要修改代码。
Spring Boot支持profiles模式,在
然后在
增加一个配置来注册自定义的监听器
在Spring中可以通过ApplicationListener来实现相关的功能,不过在配合Spring Boot使用时就稍微有些区别了。
创建ApplicationListener
这里以填充部分测试数据为例子,首先实现ApplicationStartup类。
12345678 | publicclass ApplicationStartup implements ApplicationListener<ContextRefreshedEvent> {@OverridepublicvoidonApplicationEvent(ContextRefreshedEvent event) {SourceRepository sourceRepository = event.getApplicationContext().getBean(SourceRepository.class);Source je =new Source("justice_eternal吧","http://tieba.baidu.com/f?kw=justice_eternal");sourceRepository.save(je);}} |
硬编码注册
Spring Boot有一个类SpringApplication,这个类是Spring Boot的入口,包含所有的配置。
1 2 3 4 5 6 7 8 9 10 | @Configuration @ComponentScan @EnableAutoConfiguration publicclass WebApplication { publicstaticvoidmain(String[] args) { SpringApplication springApplication =new SpringApplication(WebApplication.class); springApplication.addListeners(new ApplicationStartup()); springApplication.run(args); } } |
配置文件
Spring Boot支持profiles模式,在application.properties中配置
1 | spring.profiles.active=dev |
application-dev.properties中配置开发环境的参数。
增加一个配置来注册自定义的监听器
1 | context.listener.classes=cn.acgmo.ApplicationStartup |
相关文章推荐
- Servlet监听器与Timer定时器配合实现JAVA WEB应用简单自动作业
- java-IO操作-使用字符流读写数据
- java生成不重复随机数
- MyEclipse中对项目分类管理
- Java 移位运算(<<、>>、>>>)
- JavaWeb开发之深入分析URL重定向的原理和特点(跟着龙哥学JavaWeb)
- Java 基本操作
- java输入输出流小细节
- jvm为什么要分代
- Java的Actor框架--kilim
- install jdk 1316 error
- 自定义顺序存储结构线性表--java语言描述
- jvm优化堆大小设置
- [Java视频笔记]day24
- javac命令无法使用解决办法
- JAVA经典题目及答案(前30)
- Java学习篇之---环境变量和系统属性
- Struts2中使用Session的两种方法
- java的spilt(“,”)方法bug处理
- 接(第二篇) Java 多线程 编程 基础 教程