跳转至

spring-data-commons 3.4.6

为什么要使用spring-data-commons

在数据驱动应用的世界里,开发者常常陷入「重复造轮子」的泥潭:编写千篇一律的CRUD代码、处理不同数据源的适配问题、为分页和排序逻辑焦头烂额……而当你试图追求高效时,框架之间的兼容性又像暗礁般潜伏。这时,**Spring Data Commons**如同一把瑞士军刀,用统一的抽象接口斩断混乱。它不仅让代码量减少50%,更通过「约定优于配置」的哲学,将开发者从繁琐的技术细节中解放,直面业务核心——这才是技术人真正的战场。


spring-data-commons是什么

Spring Data Commons是Spring Data生态的基石,为各类数据库(如JPA、MongoDB、Redis等)提供通用抽象层。它定义了标准化的Repository接口、分页机制、动态查询API等核心组件,让开发者通过统一的方式操作不同数据存储,如同用同一种语言与多元世界对话。


入门示例

场景:电商平台需要同时管理关系型数据库(用户信息)和文档数据库(商品详情)。

// 定义JPA实体
@Entity
public class User {
    @Id
    private Long id;
    private String name;
}

// 定义MongoDB文档
@Document
public class Product {
    @Id
    private String sku;
    private String title;
}

// 声明通用Repository
public interface UserRepository extends JpaRepository<User, Long> {}
public interface ProductRepository extends MongoRepository<Product, String> {}

// 直接使用分页查询
Page<User> users = userRepository.findAll(PageRequest.of(0, 20));
Slice<Product> products = productRepository.findByTitleContaining("手机", Pageable.unpaged());

无需实现类,框架自动注入魔法般的实现——这正是Spring Data Commons的颠覆性力量。


spring-data-commons 3.4.6版本更新

  • 修复DeferredRepositoryInitializationListener重复注册导致的启动异常
  • 解决与Spring MVC @ModelAttribute注解的兼容性冲突
  • 调整ProxyingHandlerMethodArgumentResolver避免与Spring Security的@AuthenticationPrincipal产生代理冲突
  • 完善CrudRepository.deleteById方法的JavaDoc说明
  • 修复文档生成工具Antora的配置错误及多处拼写问题

更新日志

📗 相关链接

🐞 Bug修复

  • 修复DeferredRepositoryInitializationListener多次注册问题 #3287
  • 解决Spring Data Commons 3.3.4版本破坏@ModelAttribute处理的问题 #3258
  • 修复ProxyingHandlerMethodArgumentResolver@AuthenticationPrincipal的冲突问题 #2937

📔 文档改进

  • 修正CrudRepository.deleteById的JavaDoc描述不明确问题 #3280
  • 修复Antora文档工具中feature-scroll的错误配置 #3262
  • 修正参考文档和JavaDoc中的多处拼写错误 #3235

总结

3.4.6版本聚焦稳定性提升:关键修复涵盖框架初始化、安全注解兼容性等核心场景,文档优化则像细心的校对员,确保每个技术细节传达精准。这些改进如同隐形的桥梁,让开发者更平稳地跨越技术鸿沟。