当前位置: 首页 > news >正文

网站demo怎么做自己做网站有名

网站demo怎么做,自己做网站有名,引导式网站,培训加盟网站建设之所以把数据库的连接、结构、最小初始化等检查项放到SpringBoot监听器而不是Spring容器的初始过程。是有原因的。 1#xff1a;SpringBoot监听器是SpringBoot初始化过程中#xff0c;最先被执行的那一批周期函数。 2#xff1a;数据库连接测试能很快的获得结果。 3#xf…之所以把数据库的连接、结构、最小初始化等检查项放到SpringBoot监听器而不是Spring容器的初始过程。是有原因的。 1SpringBoot监听器是SpringBoot初始化过程中最先被执行的那一批周期函数。 2数据库连接测试能很快的获得结果。 3Spring容器初始化时里面的ApplicationListener,ApplicationRunner,初始化方法等有部分实现是异步预热缓存数据。如果不前置检查数据表结构很容易报sql异常。当产品有更新表结构时项目发布时很容易出现该问题。 public class PrepareTableCheckListener implements SpringApplicationRunListener {private static ListString MYSQL_PRODUCT_NAMES new ArrayList();static {MYSQL_PRODUCT_NAMES.add(kingbase8);MYSQL_PRODUCT_NAMES.add(mysql);}public PrepareTableCheckApplicationRunListener(SpringApplication application, String[] args) {}Overridepublic void contextPrepared(ConfigurableApplicationContext context) {ConfigurableEnvironment environment context.getEnvironment();String jdbcDriver environment.getProperty(spring.datasource.driver-class-name);String jdbcUrl environment.getProperty(spring.datasource.url);String jdbcUserName environment.getProperty(spring.datasource.username);String jdbcUserPassword environment.getProperty(spring.datasource.password);String testNetworkSQL environment.getProperty(spring.datasource.hikari.connection-test-query);if (null jdbcUrl || null jdbcUserPassword || null jdbcUserName) {return;}loadDriverClass(jdbcDriver);// 数据库连接检查DriverManager.setLoginTimeout(2);try (Connection conn DriverManager.getConnection(jdbcUrl, jdbcUserName, jdbcUserPassword)) {Statement statement conn.createStatement();statement.execute(testNetworkSQL);} catch (Exception e) {log.warn(------------------------------------------------);log.warn(...................★);log.warn(..................▍..★);log.warn(..................▍.一 .☆);log.warn(................. ▍ ..帆. ★);log.warn(..................▍ ... 风. ☆);log.warn(..................▍ ... ..顺. ★);log.warn(................. ▍.万 事 如 意. ☆);log.warn(..................▍☆ .★ .☆ .★. ☆);log.warn(..................▍);log.warn(..▍∵ ☆ ★▍▍..█▍ ☆ ★∵▍..);log.warn(◥█▅▅██▅▅██▅▅▅▅▅███◤);log.warn(◥███████████████◤);log.warn(◥█████████████◤);log.warn();log.warn(哦豁连不上数据库哈哈哈哈哈);log.warn();log.warn(jdbcDriver{}, jdbcDriver);log.warn(jdbcUrl{}, jdbcUrl);log.warn(jdbcUserName{}, jdbcUserName);log.warn(jdbcUserPassword{}, jdbcUserPassword);log.warn(testNetworkSQL{}, testNetworkSQL);log.warn(exception class e.getClass().getName());log.warn(exception message e.getMessage());log.warn(------------------------------------------------);System.exit(0);}// 预定义表结构检查SetString prepareSqls;String urlLower jdbcUrl.toLowerCase();if (ZYListUtils.anyMatch(MYSQL_PRODUCT_NAMES, urlLower::contains)) {prepareSqls readSql(db_prepare_mysql);} else {prepareSqls readSql(db_prepare_oracle);}if (prepareSqls.isEmpty()) {return;}try (Connection conn DriverManager.getConnection(jdbcUrl, jdbcUserName, jdbcUserPassword)) {conn.setAutoCommit(true);Statement stmt conn.createStatement();for (String prepareSql : prepareSqls) {try {stmt.executeUpdate(prepareSql);} catch (Exception e) {log.warn(execute table check sql 【{}】 false ,the column or table may exit!, prepareSql);}}} catch (Exception e) {log.warn(execute table check sql false ,the Connection get false!);}}public SetString readSql(String dir) {SetString sqls new HashSet();Resource[] resources;try {resources new PathMatchingResourcePatternResolver().getResources(classpath*:/ dir /**/*.sql);} catch (IOException e) {return sqls;}if (resources.length 0) {return sqls;}for (Resource resource : resources) {try (InputStream inputStream resource.getInputStream()) {String sqlText IoUtil.read(inputStream, Charset.defaultCharset());String[] sqlArr sqlText.split(;);for (String sql : sqlArr) {ListString sqlItems new ArrayList();StringTokenizer stringTokenizer new StringTokenizer(sql);while (stringTokenizer.hasMoreTokens()) {String item stringTokenizer.nextToken();sqlItems.add(item);}String finalSql ZYStrUtils.join(sqlItems, );sqls.add(finalSql);}} catch (Exception e) {log.warn(sql read false);}}return sqls;}private void loadDriverClass(String jdbcDriver) {try {Class.forName(jdbcDriver);} catch (ClassNotFoundException ex) {throw new LocalException(数据库驱动文件不存在请检查是否缺少驱动包或spring.datasource.driver-class-name配置不正确!);}} }spring.factories配置 org.springframework.boot.SpringApplicationRunListener xxx.framework.mybatis.PrepareTableCheckListener
http://www.pierceye.com/news/206643/

相关文章:

  • 网站建站的流程网站建设服务那家好
  • 湖南平台网站建设制作企业网站关联优化
  • 优秀网站设计作品大连seo外包
  • 共享空间网站开发公司做网站 最好的开源cms
  • 免费图片素材网seo wordpress主题
  • ipad可以做网站推广吗wordpress主题中文
  • 自己做网站要会什么软件下载wordpress 小工具代码
  • 视频拍摄及制作培训网站优化有什么用
  • 沈阳网站排名公司网站开发专业怎么样
  • 电影院网站建设方案网络维护是什么职业
  • 网站建设需要的公司wordpress考试主题
  • 企业网站管理系统多站多语言版电子书推送网站怎么做
  • 海洋公司做网站推广安阳网站如何做优化
  • 南昌网站开发公司哪家公司好网站建设接单
  • 宁波网站制作哪家强调用wordpress的文章编辑器
  • 在线制作手机网站公司网站建设厂家
  • 在线分析网站一个小外贸公司怎么开
  • 给自己的公司做网站怎么做好电脑手机一体网站
  • 精通网站建设 全能建站密码pdf电商网站设计理念
  • 百度推广建设网站是不是合发手机网站的必要性
  • 企业网站建设是什么实现的物质基础和技术支撑现货交易平台代理
  • 网站建设的描述长沙发布app
  • 好的设计作品网站代理网站建设
  • 做网站的软件m开头网站建设公司问候语
  • 做网站需要工商证吗app软件开发价格
  • 做足球原创短视频网站网站建设永远在路上
  • 做seo为什么要了解网站苏州做网站公司
  • 这几年做哪些网站能致富网站开发账务处理
  • 网站的版权信息做阿里巴巴网站卖货咋样
  • 找项目去哪个网站成都哪里有做网站的公司