guns开发程序功能介绍


Guns项目包结构中,后端程序分为三个包区分开,config、core、modularconfig包存放为项目的配置.

core包存放项目的核心机制,以及项目公用的枚举、异常、常量等。

modular包存放项目的业务代码,modular包下可再按业务划分,或者直接分为controller、entity、mapper等包。

SpringMvcConfiguration是对spring mvc框架的配置。

这个类中,配置了认证和鉴权的spring mvc拦截器

以下是对其中方法的讲解

addInterceptors:

 

public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(authJwtTokenSecurityInterceptor);
    registry.addInterceptor(permissionSecurityInterceptor);
}

 

Jackson2ObjectMapperBuilderCustomizerjackson2ObjectMapperBuilderCustomizer:long转化为string

public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
    return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance).serializerByType(Long.TYPE, ToStringSerializer.instance);
}

 

配置了一些错误界面的重写,让错误界面更加美观,并且如果是json请求,也会覆盖spring public CustomErrorAttributes gunsErrorAttributes() {
}

另外配置了静态资源映射,也就是访问/assets/**路径时,直接程序返回/assets/目录下的资源文件

public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/assets/");

下面是core中const包下的ProjectConstants

这其中配置了项目的常量

然后是error包下的CustomErrorAttributes,主要将将系统管理未知错误异常,输出格式重写为我们熟悉的响应格式

public Map getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions attributeOptions)

GlobalExceptionHandler类则是全局异常处理器,拦截控制器层的异常

ErrorResponseData missingParam方法拦截请求参数缺失异常

ErrorResponseData httpMessageNotReadable拦截HttpMessageConverter转化异常,一般为json解析异常

ErrorResponseData httpMediaTypeNotSupport拦截不支持媒体类型异常

 ErrorResponseData methodNotSupport不支持的http与method

ErrorResponseData notFound返回404

ErrorResponseData methodArgumentNotValidException请求参数校验失败,拦截 @Valid 校验失败的情况

ErrorResponseData bindException请求参数校验失败,拦截 @Validated 校验失败的情况两个注解 @Valid 和 @Validated 区别是后者可以加分组校验,前者没有分组校验

ErrorResponseData bindException拦截 @TableUniqueValue 里抛出的异常

String authErro拦截全校校验一类的异常这里重点做一类特殊处理,也就是对过期登录用用户
如果用户登录过期,并且为ajax请求,则response的header增加session-timeout的标识
如果用户登录过期,不是ajax请求,则直接跳转到登录页面,并提示会话超时

ErrorResponseData businessError拦截业务代码抛出的异常

ErrorResponseData persistenceException拦截mybatis数据库操作的异常

ErrorResponseData serverError拦截未知的运行时异常

ErrorResponseData renderJson渲染异常json

String getArgNotValidMessage获取请求参数不正确的提示信息

String renderLoginResult渲染登录界面

Exception包下的抛出业务异常

public class BusinessException extends ServiceException

Security包下的

 BaseSecurityInterceptor类用来进行基础的权限过滤

AuthJwtTokenSecurityInterceptor鉴权过滤器

PermissionSecurityInterceptor 权限校验过滤器

Modular包下启动类

GunsServletInitializerweb程序启动类

各种sql文件的生成

-db.migration目录存放了flyway脚本

使用flyway可以让我们不用手动初始化sql脚本,每次Guns启动会自动检测这个目录下的脚本有没有被初始化过,第一次运行项目会执行所有的sql脚本。

application.yml配置文件

这个配置文件中存放了项目的基础配置,包括spring,tomcat,spring mvc,mybatis-plus等配置。

logback-spring.xml日志配置文件

前端

-assets                // 静态文件,存放css和js

|    |-common               // Easyweb框架源码,建议不要修改,统一由作者升级

|    |-expand               // Guns封装的组件,以及引入的第三方组件

|    |-modular              // 业务代码的js

|        |-business             // 这里写您的业务代码js

|        |-system               // Guns自带业务的代码js

|-pages                 // 存放页面html文件

|    |-component            // 前端通用组件页面

|    |-layout               // 前端布局组件

|    |-modular              // 业务代码的html

|        |-business             // 这里写您的业务代码html

|        |-system               // Guns自带业务的代码html

|    |-404.html             // 404页面

|    |-forget.html          // 忘记密码页面

|    |-index.html           // 登录之后的主页面

|    |-login.html           // 登录页面

|    |-register.html        // 注册页面

相关