spring提供的SQL工具类执行SQL脚本
发表于|更新于
|浏览量:
方向是比速度更重要的追求。——白岩松
这里主要是用到了org.springframework.jdbc.datasource.init.ScriptUtils#executeSqlScript(java.sql.Connection, org.springframework.core.io.Resource)方法
例如
1 | @BeforeAll |
这样的话就可以使用resources目录下的init.sql
相关推荐
2023-03-27
jackson配置某属性只允许反序列化但不允许序列化
多和朋辈交游无疑是医治心病的良方——泰戈尔 实现jackson转json时忽略某字段,但json转对象时支持该字段的方式很简单: 只需要在getter上加@JsonIgnore,在setter上加@JsonProperty即可 例如: 1234567891011private List<Long> ids;@JsonIgnorepublic List<Long> getIds(){ return ids;}@JsonPropertypublic void setIds(List<Long> ids){ this.ids = ids; } jackson文档:https://github.com/FasterXML/jackson-docs
2021-03-17
sentinel监控不到2级接口?加上@SentinelResource就可以?
真正的快乐是内在的,它只有在人类的心灵里才能发现。——布雷默 如果出现这种问题啊 可以看你的项目启动日志 发现输出如下一句话 2021-03-16 23:24:49.986 INFO 18604 — [ main] c.a.c.s.SentinelWebAutoConfiguration : [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/*]. 看到这句话差不多懂了吧? Sentinel提供的SentinelWebInterceptor的urlPatterns默认为/* 我们跟踪配置文件com.alibaba.cloud.sentinel.SentinelProperties 找到这个配置 12345spring: cloud: sentinel: filter: url-patterns: /** 我们设置为/**后,所有接口都会被监控到啦~
2021-01-23
DTO、TO、VO、PO、DO、BO、AO、DAO、POJO
人的一生,应当像这美丽的花,自己无所求,而却给人间以美。——杨沫 之前一直有朋友问我Java中DTO、TO、VO、PO、DO、BO、AO、DAO、POJO这么多O到底是什么意思,看博客看不懂,有没有实际的例子 当然,这些O是出自《阿里Java开发手册》 POJO(Plain Ordinary Java Object): 在本规约中,POJO 专指只有 setter/getter/toString 的 简单类,包括 DO/DTO/BO/VO 等。 AO(Application Object): 阿里巴巴专指 Application Object,即在 Service 层上,极为贴近 业务的复用代码。 我就说说我的理解吧,顺带写点例子 这里就写个根据用户名、分页参数查询用户列表的例子吧 DTO(Data Transfer Object)数据传输对象 首先我们接口接参可以使用DTO,简单来说就是Controller中函数的参数,例如下面的PageDTO 12345678910111213141516171819@Data...
2024-08-31
Disruptor
有教养的头脑的第一个标志就是善于提问。——普列汉诺夫 官方文档: LMAX Disruptor github: GitHub - LMAX-Exchange/disruptor: High Performance Inter-Thread Messaging Library Disruptor是由LMAX Exchange开发的一个高性能并发框架,专门用于处理需要低延迟和高吞吐量的场景。与传统的队列模型相比,Disruptor通过无锁的环形缓冲区实现了极高的性能,适合用在对性能要求苛刻的金融交易系统、日志处理系统等领域。 Disruptor的核心概念 Disruptor框架的核心组件包括: RingBuffer: 环形缓冲区,用于存储事件。它的大小是2的幂次方,以便利用位运算进行快速计算。 Event: 事件对象,代表要处理的数据单元。 Producer: 生产者,负责将事件发布到RingBuffer中。 Consumer: 消费者,从RingBuffer中获取事件并处理。 这些组件协同工作,形成一个高效的数据处理流水线。 引入依赖: 12345<depe...
2025-03-04
MP批插优化
我虽不富甲天下,却拥有无数个艳阳天和夏日。——梭罗 看到这篇文章 https://mp.weixin.qq.com/s/NkP6kND6wQZqTd_gIuaYAw MyBatisPlus 高并发场景下的ID生成优化:分布式序列号服务实践突破分布式ID的性能瓶颈某电商平台在促销活动期间面临订单创建峰值压力,使用MyBatisPlus默认的雪花算法生成ID时,出现以下问题: 时间戳精度不足导致ID碰撞率升高(单机QPS超5000时) 服务器时钟回拨引发的批量插入失败 长ID对存储空间的额外消耗(18位 vs 传统13位) 压力测试显示,在高并发场景下单节点生成ID的吞吐量上限为1.2万/秒,成为系统瓶颈。通过改造ID生成机制,我们实现了单机5万/秒的ID生成速度,同时将存储空间压缩40%。 混合式ID生成架构设计技术方案对比 方案类型 吞吐量 碰撞概率 时钟依赖 实现复杂度 原生雪花算法 1.2万/s 0.01% 强依赖 低 UUIDv4 无限 理论无碰撞 无依赖 低 数据库序列 800/s 无 无 中 混合分段...
2024-05-06
Apache Fury
得道者多助,失道者寡助。——孟子 https://fury.apache.org/ Apache Fury 是一个 Java 序列化库,它提供了线程安全和高性能的序列化解决方案。在这个示例中,我们通过继承一个抽象序列化类来实现自定义的序列化逻辑。 例如 我们定义了一个 FurySerialize 类,它扩展了一个抽象的 AbsSerialize 类。这个类实现了两个主要方法:encode 用于将对象序列化成字节,而 decode 用于将字节反序列化成对象。 1234567891011121314151617181920212223242526public class FurySerialize extends AbsSerialize { private static ThreadSafeFury fury; static { fury = Fury.builder() .withLanguage(Language.JAVA) .withRefTracking(true) ...
