SpringBoot配置文件加载顺序
more >>Gitlab CI/CD 是一款用于持续集成(CI),持续交付(CD)的工具,相似的工具有 Jenkins、Travis CI、GoCD 等。
持续集成,即 Continuous Integration, 即在源代码变更后(git push)后自动检测(code lint)、构建和进行单元测试的过程,持续集成的目标是快速确保开发人员新提交的代码是好的(少 bug),并且适合在代码库中进一步使用。
持续交付,即 Continuous Delivery, 通常是指整个流程链(管道),它自动监测源代码变更并通过构建、测试、打包和相关操作运行它们以生成可部署的版本(可以是 apk 打包,也可以是网站部署),基本上没有任何人为干预。它包括持续集成,持续测试(保证代码质量),持续部署(自动发布版本,供用户使用)。
Gitlab 的 CI/CD 算是比较简单的了,只需要依靠一份 “.gitlab-ci.yml”,将该文件随代码上传,Gitlab 就会自动执行相应的任务,从而实现 CI/CD。
more >>XXL-JOB 是一个分布式任务调度平台,于 2015 问世,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。其具备且不止如下能力
Redisson实现订单到期关闭
Redission 中定义了分布式延迟队列 RDelayedQueue,这是一种基于 zset 结构实现的延时队列,它允许以指定的延迟时长将元素放到目标队列中。
实现订单到期关闭不同方案的完整性对比参考:
Redission ≈ RabbitMQ 插件 > kafka 时间轮 > Redis 的 zset ≈ RocketMQ 延迟消息 ≈ RabbitMQ 死信队列 > Redis 过期监听 > 定时任务 > Netty 的时间轮 > JDK 自带的 DelayQueue > 被动关闭
在使用 Springboot 时,通常很多信息都是在 application.yml 中直接明文配置的,比如数据库链接信息,redis 链接信息等等。但是这样是不安全的。
所以需要对敏感数据进行加密,这样防止密码泄露
Jasypt 这个库解决了这个问题,实现了 springboot 配置的自定加密加密
more >>SpringBoot自定义多数据源starter组件,通过注解的方式切换数据源,相比传统方式,方便切换数据源。且数据源相关Mapper等也不需要分开存放,全部放在一起即可,通过注解指定使用谁。
SpringBoot连接多数据库场景很适用。
more >>SpringBoot修改Schedule设置动态定时任务
注解形式的Schedule,定时任务的执行时间随项目初始化之后,不能动态更改。
本文实现SchedulingConfigurer重写定时触发规则,一种是通过cronTrigger触发器动态设置cron表达式,一种是通过PeriodicTrigger触发器动态设置执行间隔。
Tips:每一次任务触发,都会重新获取下一次的执行时间,因此修改cron表达式的时间一定需要在下一次触发执行之前,修改才会生效,否则修改无效。下一次执行完成,获取最新cron,更新到触发规则。
more >>tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true