Skip to content

konghanghang/base-iminling-core

Repository files navigation

base-iminling-core

基础服务包,抽取公用方法,方便自己以后在项目中快速引用。 服务使用springboot版本为2.3.5.RELEASE。 引入本基础模块代码如下:

<dependency>
    <groupId>com.iminling</groupId>
    <artifactId>iminling-core</artifactId>
    <version>2.1.0</version>
</dependency>

如果引入SNAPSHOT版本则需要在pom中加入以下配置:

<repositories>
   <repository>
      <id>sonatype-snapshots</id>
      <name>sonatype-snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <snapshots>
          <enabled>true</enabled>
      </snapshots>
   </repository>
</repositories>

功能

  • 自定义参数处理
  • 自定义返回值处理
  • controller全局异常处理
  • 登录验证过滤器,需自己实现
  • 权限验证过滤器,需自己实现
  • 日志记录功能,需自己实现
  • mybatis返回为map时下划线转驼峰
  • 参数校验功能
  • mybatis热加载mapper功能
  • swagger2接口文档
  • spring请求和响应日志打印
  • openfeign使用自定义client和解码器
  • 自定义ribbon路由规则

使用需知

本jar中使用spring spi机制进行bean的添加,只需引入本依赖就可以了。另外mybatis-plus是可选依赖,如果需要使用mybatis相关则自行添加mybatis-plus-boot-starter依赖。

功能介绍

自定义参数处理

在spring中如果想进行下边的参数写法来传递参数,只能使用form-data形式来传递,如果想使用json形式传递,则需要对这两个对象进行复合,用一个新的类,把这两个类做为其中的属性。

@PostMapping
public IPage list(DiaryCondition condition, PageModel pageModel) {
 }

本框架里的参数支持如上这样子进行分开写,然后在方法上或类上标注@EnableResolve(value=ResolveStrategy.ARGUMENTS)注解,然后就可以正常运行,也不需要使用@RequestBody注解就可以接受json类型的参数,传参只需要这样子:

{
   "condition": {
      
   },
   "pageModel": {
      
   }
}

@EnableResolve默认只处理返回值,如果想要只处理参数或者同时处理参数和返回值详情见枚举类:ResolveStrategy。只处理返回值,则参数按照原spring规范处理。

自定义返回值处理

处理返回的结果,给结果统一添加一层固定的格式,详细见ResultModel.

controller全局异常处理

对异常进行分类处理,最终也返回统一格式,详细见GlobalExceptionHandler.

登录验证过滤器(需自己实现)

需要实现com.iminling.core.filter.LoginFilter接口,然后重写doFiltergetOrder方法,然后查询的用户放入com.iminling.core.util.ThreadContext中。

权限验证过滤器(需自己实现)

需要实现com.iminling.core.filter.AuthFilter接口,实现doFilter方法和getOrder方法。在controller上使用@Authentication注解(com.iminling.core.annotation.Authentication注解)。

日志记录功能,需自己实现

使用@ApiDesc标注在方法上,然后需要自己实现ILogService接口,具体怎么存用户自行扩展,该实现需要交给spring容器去管理。

@ApiDesc(desc = "我是日志详情")
@GetMapping(value = "/aaa")
public void get(){
}

参数校验功能

因为自定义了参数处理器,所以校验功能单独拿了出来,需要使用本框架的注解@Validate(com.iminling.core.annotation),使用方法如下:

@PostMapping("/register")
@Validate
public void register(@NotNull RegisterVo model){
}

添加mybatis热加载mapper功能(2021-03-11)

使用说明,默认对`mybatis-plus.mapper-locations`属性配置的目录进行加载

需要配置属性`mybatis-plus.refresh-mapper=true`,默认不开启热加载功能

可选属性`mybatis-plus.refresh-mapper-interval=10`,刷新间隔,默认为5s

swagger2接口文档

引入swagger2文档,兼容自定义参数的形式。添加以下功能:

  1. 针对枚举类处理,支持枚举类显示为正常的参数形式,需要在枚举类上添加@SwaggerDisplayEnum注解
  2. 默认展示的是code和desc,如果不是这两个字段,需要在注解参数中进行指定

spring请求和响应日志打印

默认对spring的请求和响应都会进行参数打印,包括方法,请求入参,响应结果。

About

自定义基础jar包,包括参数处理、异常处理、返回结果处理等自定义功能,抽取出来供快速开始开发。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published