• 组件编码 hzero-starter-core

    一、简介

    1.1 概述

    该组件主要针对技术开发中进行技术支持,提供一些通用的技术开发支持功能,减少重复造轮子。定义了基础实现类,异常封装,常用工具等。

    1.2 组件坐标

    <dependency>
         <groupId>org.hzero.starter</groupId>
        <artifactId>hzero-starter-core</artifactId>
        <version>${hzero.starter.version}</version>
    </dependency>
    

    二、组件功能

    2.1 base

    base 包主要定义了一些基础常量、BaseController 等。

    2.2 config

    config 包提供了配置工具。

    2.3 exception

    exception 包提供了基础的异常类,以及全局异常处理器:

    2.4 util

    util 包提供了一些常用的扩展的工具类:

    2.5 redis

    2.6 cache

    cache下主要提供了一个功能,使用注解根据配置从缓存中获取值。

    public class DemoDTO implements Cacheable {
    
        private Long createdBy; // 创建人ID
    
        @CacheValue(key = HZeroCacheKey.USER, primaryKey = "createdBy", searchKey = "realName",
                structure = CacheValue.DataStructure.MAP_OBJECT)
        private String createdUserName; // 创建人姓名
    
        // getter/setter
    }
    

    2.7 captcha

    captcha 下提供了基础的验证码功能封装。

    2.8 message

    message 包提供国际化消息相关的操作。

    2.9 algorithm

    常用算法工具。

    tree(递归构建树)

    class Entity extentds org.hzero.core.algorithm.tree.Child<Entity> {
        Integer id;
        Integer parentId;
        // other field ...
        // getter and setter ...
    }
    
    // method
    List<Entity> objList = // from anywhere...
    List<Entity> result = org.hzero.core.algorithm.tree.TreeBuilder.buildTree(objList, null, Entity::getId, Entity::getParentId)
    
    [                                                   [
        {                                                   {
            "id":1,                                             "id":1,
            "parentId":null,                                    "parentId":null,
            ...                                                 "children":[{
        },{                                                         "id":2,
            "id":2,                                                 "parentId":1,
            "parentId":1,               ->                          ...
            ...                                                 },{
        },{                                                         "id":3,
            "id":3,                                                 "parentId":1,
            "parentId":1,                                           ...
            ...                                                 }]
        }                                                       ...
        ...                                                 }
    ]                                                   ]
    

    structure(自定义数据结构)

    2.10 jackson

    封装了一些jackson序列化和反序列化的操作,支持Java8时间格式的序列化,使用前需要在Spring Boot启动类上添加org.hzero.core.jackson.annotation.EnableObjectMapper注解。

    忽略时区转换

    字符串两端空格过滤

    敏感信息加密

    2.11 convert

    封装了一些自定义的参数转换,可以通过hzero.date.converter.enable配置关闭或者开启这些转换器,默认开启。

    Date

    LocalDate

    三、版本更新日志

    0.8.0.RELEASE [2019-3-29]