1. 程式人生 > 其它 >guns開發程式功能介紹

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<String, Object> 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 // 註冊頁面