简介和区别

故名思意,全局模块就是处理全局事务的模块,就像一个主板,为具体模块提供基础服务比如:
权限和安全,路由,用户和Session回话,统一的异常处理,返回结果,统一的参数处理和校验等;

而业务模块则是具体针对某一个业务而实现的功能,可能会用到全局的事务,也可能用不到;其实全局模块也是一个业务模块相对来说比较通用,所以抽取出来针对性的进行开发和服用;同时把具体通用性的业务模块,重复使用的功能和特性提取到全局模块中;实现减少代码和业务的重复开发,增加复用性;

全局模块基本内容:

全局配置

不论业务模块又多少使用到那些配置,一些影响多个模块的配置都应该放在全局配置中,以方便其他模块使用和遵守相关的配置,如果业务模块自己的配置和不同于全局的配置可以放在自己的模块中,重要的一点是要遵守全局的配置而不要破坏整体性;

Web配置WebConfig(WebMvcConfigurer)

CORS配置:前后端分离开发和协作CORS配置非常重要,经常要放在这里个配置是一般放在这里;
静态资源处理:为了防止后端依然处理一些静态资源,提成处理速度,对一些静态资源不进行过滤和动态处理;
当然最好是严格的进行前后端分离,后端仅作为API处理;

Feign配置

应用中我们经常会用到其他服务的接口,这个时候我们需要为全局的FeignClient进行相应的配置,一般放在这里

Redis配置

Cache配置

Session配置

配置应用使用哪种session策略,以及一些常用的session配置,如失效时长和session的存储方式,以及是否开启单点登录等;

Security配置

配置应用的安全方式和流程,开启那些安全,使用那些安全配置进行保护整个应用,对那些模块可以不经过授权进行访问等;

WebSocket配置

其他相关全局的配置

Bean工厂

我们经常会为全局或者其他业务模块提供一些常用的类和方法一些业务类或者特殊的服务注入,就需要在这里进行为整个应用生产相应的类个对象以及服务;

授权和认证

这里的授权和认证是指的实现,实现完成后需要配置到安全配置中,成为整个应用的安全模块;授权和认证是两大模块分别用户的合法性认证并为合法的用户进行授权,然后对访问的资源进行鉴权操作,合法的用户拥有合法的权限才可以访问正确的资源;这个模块比较复杂涉及到:用户模块,角色模块,权限模块,访问控制模块还有底层的安全体系;

Session会话管理

路由

如果架构使用了分布式或者微服务,具体的业务逻辑实现并不全再本应用中实现,而是委托下游服务进行实现,则需要使用路由讲具体的请求路由到对应的下游服务中进行处理并进行返回;

全局的参数处理

一些已知的参数进行预处理,比如日期和数组,以及null的处理;当然我们可以完全要求前端严格的传递参数不至于应用报错,也可以在前端没有没处理的情况先对特殊参数进行良好的转化和处理;
一般springmvc内置的转换器已经够我们使用了,但是再特殊情况下还是需要我们补充Converter来增强前后端的对接,加强对前端的支持;当然前端也可以进行相应的调整,使前后端的对接更加的友好而不出差;

统一返回结果

统一的异常

统一的日志

工具类库

全局其他需要关注的事情

POM依赖,为了支持各个模块的运行,每个模块的依赖都需要维护到POM中

具体的业务模块

如果全局模块处理的非常好的话,业务模块就可以聚焦自己的业务进行简单的增删改查操作即可,需要做的仅仅是:校验业务参数,业务处理,日志输出,数据返回;不用关心参数转化问题,不用关心权限问题,不用关心异常问题;因为这些问题已经再全局层面处理好了;