Skip to content

fancyyawn/zhacker-framework

Repository files navigation

zhacker-framework

个人微服务实践公共类库,参照spring-boot管理所有的maven依赖,提供了常用的starter。 具体子项目功能如下:

子项目简介

zhacker-core

包含各核心基类,如实体基类、事件基类、校验基类、通用业务异常、应用层公共请求基类和响应类等。

zhacker-boot

各通用功能的实现

  • aop: 异常兜底、日志等切面
  • event: 领域事件发布、存储、转发、通知、事件流等
  • mybatis:常用TypeHandler等,如json存储等
  • validate: 封装常用ConstraintValidator,如列表元素不重复(@ListDistinct)等校验。
  • ribbon: 权重和标签路由策略实现
  • cache: 多级缓存封装(redis+caffeine)

zhacker-boot-dependencies

参照spring-boot的maven依赖管理

zhacker-boot-parent

各项目依赖的parent,取代spring-boot-parent。

zhacker-boot-starters

包装zhacker-boot中通用功能的starter,以下只罗列了部分

  • zhacker-boot-starter: starter的公共依赖
  • zhacker-boot-starter-event-mybatis: DDD中事件相关基础设施
  • zhacker-boot-starter-ribbon: 封装了权重和标签路由策略,使应用服务能支持按权重路由,按标签路由,从而可以进一步实现实例级别的限流、降级、灰度等需求。
  • zhacker-boot-starter-aop: 一些日志打印、异常处理等通用切面
  • zhacker-boot-starter-cache: 一个简单的缓存starter
  • zhacker-boot-starter-swagger: 快速配置swagger
  • zhacker-boot-starter-job: 快速引入elastic-job-lite

如何使用

  1. 下载源码
git clone https://github.com/fancyyawn/zhacker-framework.git
  1. maven编译
mvn clean install -Dmaven.test.skip
  1. 在maven项目中引用parent和starter
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>zhacker-boot-parent</artifactId>
        <groupId>top.zhacker</groupId>
        <version>2.0-SNAPSHOT</version>
    </parent>

    <artifactId>zhacker-sample-spu</artifactId>
    <modelVersion>4.0.0</modelVersion>

    <dependencies>

        <dependency>
            <groupId>top.zhacker</groupId>
            <artifactId>zhacker-boot-starter-event-mybatis</artifactId>
        </dependency>
        <dependency>
            <groupId>top.zhacker</groupId>
            <artifactId>zhacker-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>top.zhacker</groupId>
            <artifactId>zhacker-boot-starter-swagger</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

About

微服务实践公共类库,基于SpringBoot2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages