为什么80%的码农都做不了架构师?>>>   

为了便于干净的初始化部署运行S2JH框架,采用了jdbc:initialize-database来从SQL脚本中初始化框架基础数据,其中遇到一个问题:

框架使用了Spring与Quartz集成以JDBC方式进行Cluster集群定时任务支持,其中一个需要提前准备的就是需要初始化好Quartz需要的相关数据表,但是按照默认设置Spring Scheduler始终会在jdbc:initialize-database之前就优先加载,导致spring scheduler加载过程抛出Quartz相关数据表Table Not Found的异常。

由于jdbc:initialize-database不是按照常规的bean id方式定义,导致没法直接以depends-on控制依赖加载顺序,通过分析jdbc:initialize-database相关schema定义和对应源代码,最终以一种特殊的depends-on写法实现了顺序控制:

<bean id="quartzClusterScheduler" class="lab.s2jh.schedule.ExtSchedulerFactoryBean" depends-on="org.springframework.jdbc.datasource.init.DataSourceInitializer#0">

详见相关代码:

http://git.oschina.net/xautlx/s2jh/blob/master/prototype/src/main/resources/context/context-profiles.xml

http://git.oschina.net/xautlx/s2jh/blob/master/prototype/src/main/resources/service/spring-schedule.xml

转载于:https://my.oschina.net/s2jh/blog/220529

S2JH经验分享:控制jdbc:initialize-database与其他bean加载顺序相关推荐

  1. Spring 使用注解@DependsOn控制Bean加载顺序

    文章目录 1. 前言 2. 代码实现 1. 前言 默认情况下,Spring加载Bean的顺序是不确定的(或者可以理解为,按编译后的class文件顺序加载).当我们需要控制Bean加载顺序以满足特定的需 ...

  2. Spring控制Bean加载顺序

    spring容器载入bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范. 首先要了解depends-on或@DependsOn作用,是用来表示一个bean A的实例化依赖另一个bean ...

  3. 如何正确控制springboot中bean的加载顺序总结

    1.为什么需要控制加载顺序 springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题.在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功 ...

  4. Spring:@AutoConfigurexxx注解-控制配置类的加载顺序

    1.美图 2.概述 控制配置类的加载顺序(@AutoConfigureAfter.@AutoConfigureBefore.@AutoConfigureOrder) AutoConfigureAfte ...

  5. SpringBoot如何正确控制bean的加载顺序

    1. 为什么需要控制bean的加载顺序 springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题.在此基础上,又提供了SPI[Service Provider Interface]机 ...

  6. JavaWeb --MYSql(MySql基础,MySql高级,JDBC,从类路径下加载输入流对象)

    SQL分类 DDL(Data Definition Language)数据库定义语言,用来定义数据库对象:数据库,表,列等(操作数据库,表等) DML(Data Manipulation Langua ...

  7. 如何控制HTML中DIV的加载顺序

    转载 http://bbl456.blog.sohu.com/72162079.html 目前网站之间相互调用的情况越来越多,比如 需要调用某个第三方提供的一些接口(天气预报),或者是第三方提供的广告 ...

  8. 分享轮子-flutter下拉刷新上拉加载

    flutter下拉上拉组件轮子 什么是flutter? 首先说下flutter,估计这个应该挺多人没听过flutter这个框架,它是一个google推出的跨平台的移动应用UI框架,和React Nat ...

  9. 微信小程序(一):小程序中使用EChart、控制EChart显示隐藏及数据懒加载

    效果 引入ECharts 参见 https://github.com/ecomfe/echarts-for-weixin 目录 源码 pages/index/index.json {"usi ...

最新文章

  1. 如何利用神经网络结合遗传算法进行非线性函数极值寻优(2)
  2. 重庆二师计算机科学与技术,应用型本科院校计算机科学与技术专业一流课程建设思考──以重庆第二师范学院为例...
  3. 使用vm server 虚拟机上安装oracle-rac 共享磁盘错误解决
  4. MyBatis开发步骤
  5. 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)
  6. [BZOJ3529][Sdoi2014]数表
  7. TensorFlow 简介
  8. java 常量表达式_JavaSwitch语句:常量表达式是必需的,但它是常量
  9. 疯狂动物消消乐html5游戏在线玩,疯狂动物消消乐免费
  10. 还有什么事情AI做不了?
  11. HTML-参考手册: HTML ASCII
  12. 经验总结:完整做完一款游戏需要经历哪些流程?
  13. 小米手机下载二维码APP
  14. 台式机配置网站服务器,台式机搭建服务器的配置
  15. 【论文笔记】用数字孪生改变农业食品生产系统和供应链
  16. 十分钟安装一套即时通讯 IM 私有云
  17. 逆袭之旅DAY20.XIA.程序调试
  18. carbon php 天数相差,使用 Carbon 计算时间差
  19. 紫书之路——5-9 数据库
  20. 基于微信小程序视频点播系统、电影播放系统、在线教育视频系统 系统的设计与实现 开题报告和效果图

热门文章

  1. 这样规范写代码,同事直呼“666”
  2. 想不到!面试官问我:Redis 内存满了怎么办?
  3. 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
  4. Java面试中最高频的那20%知识点是什么?
  5. 达摩院发布2022十大科技趋势!
  6. 260万奖金池!目标检测新赛事来了
  7. 一年暴增1600万程序员!GitHub 2021年度报告发布:中国755万开发者排全球第二
  8. 这是什么操作?导师一作,研究生挂通讯...
  9. 谷歌提出「卷积+注意力」新模型,超越ResNet最强变体!
  10. Pytorch nn.Transformer的mask理解