码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2016-12-30 16:46:04      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:exec   ram   base   ror   manage   dev   package   ini   容器   

 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就会执行

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

标签:exec   ram   base   ror   manage   dev   package   ini   容器   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!