{"repo":"opengoofy/crane4j","free":true,"listed":false,"github":"https://github.com/opengoofy/crane4j","clone":"git clone https://github.com/opengoofy/crane4j.git","description":"一个简单易用的关联字段填充框架，通过简单的注解配置快速根据外键/编码值填充相关字段，支持字典，枚举，方法等多种数据源。 A simple and easy-to-use data mapping framework, quickly populate relevant fields according to foreign keys/encoded values through simple annotation configuration, supports dictionaries, enumerations, methods and other data sources.","language":"Java","stars":258,"topics":["java","spring","spring-boot","annotation","dict","fillp"],"license":"Apache-2.0","category":"api-integrations-sdks","readme_excerpt":"[//]: # ([English]&#40;https://github.com/opengoofy/crane4j/blob/dev/README-EN.md&#41; [中文]&#40;https://github.com/opengoofy/crane4j/blob/dev/README.md&#41;) Crane4j 一个简单易用的关联字段填充框架，通过简单的注解配置快速根据外键/编码值填充相关字段，支持字典，枚举，方法等多种数据源。 它是什么？ 在日常的开发工作中，我们经常面临着繁琐的数据组装任务： 根据一个对象的某个属性值，获取相关联的数据，并将其映射到另一个对象的属性中 。这种需求经常涉及到字典项、配置项、枚举常量，甚至需要进行关联数据库表的查询。这样的数据填充任务往往耗费大量时间和精力，而且容易产生重复的样板代码，让人感到心烦。 crane4j 旨在为了解决这种烦恼而生，它是一套注解驱动的数据填充框架。通过简单的注解配置， crane4j 可以优雅高效地完成不同数据源、不同类型、不同命名的字段填充任务，让你专注于核心业务逻辑而不再被繁琐的数据组装工作所困扰。 它有哪些特性？ - 多样的数据源支持 ：支持枚举、键值对缓存和方法作为数据源，也可通过简单的自定义扩展兼容更多类型的数据源，并提供对所有数据源的缓存支持； - 强大的字段映射能力 ：通过注解即可完成不同类型字段的自动映射转换，还支持包括模板、排序、分组和嵌套对象填充等功能； - 高度可扩展 ：用户可以自由替换所有主要组件，结合 Spring 的依赖注入可实现轻松优雅的自定义扩展； - 丰富的可选功能 ：提供额外的自动填充方法返回值和方法入参参数，多线程填充，自定义注解和表达式，数据库框架插件等可选功能； - 开箱即用 ：简单配置即可与 spring/springboot 快速集成，也支持在非 spring 环境中使用； 文档 项目文档 document：crane4j.cn 快速开始 引入依赖 xml cn.crane4j crane4j-spring-boot-starter ${last-version} 声明填充操作 通过在类、字段或 getter 方法上添加注解，即可基于上文配置的数据源声明填充操作，支持一对一、一对多甚至多对多的属性映射： java @Data @Accessors(chain = true) @RequiredArgsConstructor public static class Foo { // 根据从 getter 方法获取的值，从指定的数据源中获取对应的对象，然后将其name映射到当前的name中 @Assemble(container = \"method\", prop = \"name\") public Integer getId() { // return value } private String name; // 根据 gender 获得对应的枚举对象，然后将其 name 属性映射到 genderName 中 @AssembleEnum(type = Gender.class, prop = \"name:genderName\") private Integer gender; private String genderName; // 根据部门 ID 查询员工列表，并取列表中员工对象的名称映射到 empNames @AssembleMethod( handlerType = OneToManyAssembleHandler.cla","default_branch":null,"files":null,"tree":[],"storefront":"/r/opengoofy","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/opengoofy/crane4j/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}