首页 > 代码库 > 容器启动后执行和执行数据库脚本
容器启动后执行和执行数据库脚本
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就会执行
容器启动后执行和执行数据库脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。