博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring初始化完成后直接执行一个方法,初始化数据
阅读量:6281 次
发布时间:2019-06-22

本文共 1028 字,大约阅读时间需要 3 分钟。

hot3.png

     在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听、Servlet加载初始化等切入点为数据库准备数据,这些初始化数据是系统开始运行前必须的数据,例如权限组、系统选项、默认管理员等等。但是项目若不是WEB工程,或者说还没用到WEB层(例如单元测试),这时应如何方便地初始化数据呢?

    借助Spring容器是个很好的解决方案。Spring框架提供了事件机制,而事件机制必须实现ApplicationListener监听器,因此我们只要编写一个实现类实现该接口的onApplicationEvent方法,在方法体中检测数据库的初始化数据是否存在并选择初始化之。

步骤:

1、实现ApplicationListener接口

2、交给Spring管理

3、ok!

示例代码:

 

package com.zjh.dao;

 

import javax.annotation.Resource;

import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Repository;

 

@Repository//交给Spring管理,如果不是自动扫描加载bean的方式,则在xml里配一个即可 public class InitData implements ApplicationListener {

 

  @Resource TestDao testDao;//注入一个dao,可以操控数据库     public void onApplicationEvent(ApplicationEvent event) {

initArticleCategory();

   }      }

 

private void initArticleCategory(){

 //检测数据库是否有初始化数据,若没有则在此初始化数据

if(testDao.getCount(ArticleCategory.class)==0){

//将文章的分类数据初始化到数据库

}

}

}

     可以在onApplicationEvent方法中执行任何数据初始化动作,这样只要容器启动,就会执行这里的代码。

转载于:https://my.oschina.net/u/1157906/blog/181153

你可能感兴趣的文章
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>