
spring
文章平均质量分 86
择维士
专注技术分享
展开
-
[Spring]用100行代码来模拟解决Spring的循环依赖问题
Abstract好久没写文章了, 最近喜欢上了springboot, 也发现这个开发起来确实很方便和快捷。 包括spring kafka, jdbc, & actuator. 一天, 比较惊讶于spring如何优雅的解决循环依赖的问题的, 因为自己代码有时候也没注意, @Autowired 到处都是, 但是发现spring竟然可以正常工作,于是好奇的想了解下其实现。 所以就有了这个文章。Spring如何解决循环依赖的?官方文档:hereCircular dependenciesIf原创 2021-02-02 22:12:52 · 290 阅读 · 0 评论 -
[Springboot编程思想]ch7-spring的组合注解
文章目录Abstractspring的注解编程模型元注解模式注解体验注解的派生性spring的多继承注解模型那么如果是多层继承呢?总结Abstractspring自身经历了快速的发展, 我印象中还是古板的xml配置, 而现在已经完全不需要xml了… 直接注解搞定确实给开发者省了很多工作. 本文是在阅读<springboot编程思想>过程中的记录spring的注解编程模型spring的官方关于注解模型:https://github.com/spring-projects/spri原创 2020-06-04 11:50:05 · 340 阅读 · 0 评论 -
[Springboot编程思想]ch2-springboot是如何启动的?
Abstract弄清楚springboot的jar模式是如何启动的? 代码在: github我们如何生成单个可执行的jar?maven 引入:spring-boot-maven-plugin 中的repackage 任务: <build> <plugins> <!-- 保持与 spring-boot-dependencies 版本一致 --> <plugin> <groupId>org.apache.maven.p原创 2020-06-01 15:39:49 · 291 阅读 · 0 评论 -
Springboot shutdown 耗时太长的分析使用btrace
背景没怎么用过springboot, 但是还是咬牙上了. 在这篇使用springboottest和h2来构建数据库测试的采坑记录中就发现我们的应用在测试用例跑完了无法自动关闭. 而且还总是等了2分钟就自动关闭了. 然后最开始以为是test case才有问题 结果发现是应用本身运行的时候正常关闭也有问题.如下图:(测试已经完了,springboot开始shutdown 但是进程本身没有退出)先google发现都是说的如何gracefully shutdown的… 并没有立即shutdown的…原创 2020-05-28 11:05:47 · 907 阅读 · 0 评论 -
使用springboottest和h2来构建数据库测试的采坑记录
现状因为项目关系和人力关系, 代码写的比较快而且质量不是很好. bug比较多 基本功能总是有问题(某些场景下) 所以现在想快速补齐测试短板.为啥要做想看看如何将spring boot test + db这套结合起来做测试… 因为我们是saas项目 所以更多的想法就是能不能采用内存数据库来方便UAT测试. 所以就有了下面的数据库对比和h2采坑记录不同数据库对比:H2DerbyHSQLDBMySQLPostgreSQLPure JavaYesYesYesNoNo原创 2020-05-26 21:19:34 · 3065 阅读 · 0 评论 -
Lombok入坑指南
常见的一些注解@Builder -- 生成链式方法@Cleanup -- 自动close closeable对象... 带有继承的entity如果lombok要支持继承的话, 要注意:(1)使用@SuperBuilder时, 整个链路上都要有该注解.(2)@SuperBuilder 配合lombok.accessors.prefix += _ 会有bug. 需要更新版本(我用的最新版1.18.12 fix了该问题)报错:error: cannot find symbol@Super原创 2020-05-18 12:50:57 · 1963 阅读 · 2 评论 -
Springboot error handler是如何工作的?
背景以前没有怎么接触过springboot, 一直做得偏底层相关的开发, 接触到springboot后发现这个框架实现的非常巧妙, 确实也非常方便. 这篇文章就记录下spring boot中的ErrorHandler是如何实现的.Example示例代码在: github里面的schedulingtask module.大体来说就是://ctrl层会抛出一个异常 public ...原创 2020-04-21 21:06:14 · 1594 阅读 · 0 评论