# blocks **Repository Path**: idler41/blocks ## Basic Information - **Project Name**: blocks - **Description**: 通用系统脚手架,可根据需要集成各模块功能 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-22 - **Last Updated**: 2025-07-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## mapstruct编译失败: No implementation was created for xx setting=>compiler=>shared build process vm options添加参数-Djps.track.ap.dependencies=false ## 统一数据校验 ## 全局异常处理 ### ResponseEntityExceptionHandler ResponseEntityExceptionHandler返回的是text/plain;charset=UTF-8,不方便统一json处理,可参考自己捕获统一处理 ## 通用增删改查 ## 认证与鉴权 ### 为什么不使用PermissionEvaluator Spring EL表达式功能强大提供诸如:hasRole、hasAnyRole、hasPermission、isAuthenticated等功能,通过vote投票进行鉴权 一般业务鉴权逻辑简单,不需要复杂的表达式,所以这里使用aop代理拦截鉴权实现 ### 多重认证 用户名/密码、手机号/验证码、邮箱/密码、邮箱/验证码等provider ### 多重鉴权 vote ### rest响应 - AuthenticationEntryPoint: spring security web 概念模型接口(认证入口点)。在用户认证处理过程中遇到认证异常时,被ExceptionTranslationFilter用于开启特定认证方案的认证流程 - AccessDeniedHandler: 权限认证失败处理,如果是注解权限验证,一般会被@RestControllerAdvice捕获,不会传递到AccessDeniedHandler - AuthenticationFailureHandler 认证失败处理(单个认证失败处理) ## 定时任务 定时任务集成到应用(如若依)有诸多优点: - 用户使用方便,不用额外跳转登录 - 前端风格统一,操作方便等 缺点: - 调度任务普通用户不懂操作特别是cron表达式,一般统一由运营人员管理,所以操作方式、前端风格并不重要 - 调度功能未解耦,每个应用独立建表 综合考虑采用分布式调度平台如xxl-job、power-job更合适, 假如有用户级别的任务执行计划,可针对调度平台做相应适配(应用系统调用调度平台api动态crud相关执行计划) ## 数据权限 ### DataScopeAspect 构建DataScopeInterceptor所需参数,设置到ThreadLocal ### DataScopeInterceptor 解析sql => 根据参数拼接新sql => 变量透传