首页 > 数据库技术 > 详细

容器启动后执行和执行数据库脚本

时间:2016-12-30 16:45:54      阅读:194      评论:0      收藏:0      [点我收藏+]
 1 package com.jt.mongo.demo.modules.init;
 2 
 3 import org.slf4j.Logger;
 4 import org.slf4j.LoggerFactory;
 5 import org.springframework.context.ApplicationListener;
 6 import org.springframework.context.event.ContextRefreshedEvent;
 7 import org.springframework.core.io.ClassPathResource;
 8 import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
 9 import org.springframework.stereotype.Component;
10 
11 import javax.annotation.Resource;
12 import javax.sql.DataSource;
13 import java.sql.SQLException;
14 
15 @Component
16 public class SqlScriptInitExecutor implements ApplicationListener<ContextRefreshedEvent> {
17 
18     private static final Logger LOGGER = LoggerFactory.getLogger(SqlScriptInitExecutor.class);
19 
20     @Resource
21     private DataSource mysqlDataSource;
22 
23     @Override
24     public void onApplicationEvent(ContextRefreshedEvent event) {
25         initMySqlTables();
26     }
27     
28     private void initMySqlTables() {
29         try {
30 
31             ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
32             populator.addScript(new ClassPathResource("sql/mysql_pdca_manager.sql"));
33             populator.populate(mysqlDataSource.getConnection());
34 
35             LOGGER.info("init pdca manager tables success.");
36 
37         } catch (SQLException e) {
38             LOGGER.error("init pdca manager tables error", e);
39         }
40     }
41 }

 

ContextRefreshedEvent:
Event raised when an {@code ApplicationContext} gets initialized or refreshed.
当容器初始化或者重启之后实例化到容器中,然后监听他的listener就会执行

容器启动后执行和执行数据库脚本

原文:http://www.cnblogs.com/wihainan/p/6237401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!