创建Maven项目与common模块
1、创建Maven项目 下面,我们正式开始开发项目。
首先,创建一个Maven项目作为微服务的父工程,将其命名为“mall” 。如图所示。
创建好后,编辑pom.xml文件,如程序清单15-1所示。
2、创建common模块 很多情况下,各个微服务会用到同样的代码,如果把这些公用的代码抽离出来单独做成一个模块供其他模块调用,就能减少整个工程代码的冗余性,增强结构层次。
经过分析可知,工具类和某些自定义注解是公用的,还包括对象存储,因此我们把这些部分单独写在common模块里。
首先,在父工程的名字上右击,选择“New”→“Module”,创建模块common。
值得注意的是,jar包有可执行和不可执行之分。当一个Spring Boot项目作为其他项目的依赖时,只能是不可执行的jar包。因此,common模块需要配置打包方式,在build标签中的Maven插件中指明要单独压缩可执行jar包,这样当它作为依赖压缩进其他模块的jar包时便是不可执行的。
接着,编辑pom.xml文件,如程序清单15-2所示。
由于篇幅有限,我们直接展示已经配置完成的Common模块目录,如图所示。然后讲解一下每个类的作用,如有兴趣可以查看提供的项目源码。LoginUser是自定义的一个注解,用在Controller中的方法参数上,用于获取登录用户的ID。
由于篇幅有限,我们直接展示已经配置完成的Common模块目录,如图所示。
然后讲解一下每个类的作用,如有兴趣可以查看提供的项目源码。LoginUser是自定义的一个注解,用在Controller中的方法参数上,用于获取登录用户的ID。LoginUserHandlerMethodArgumentResolver是LoginUser注解的解析器,用于实现这个注解的功能。
StorageController是本地对象存储的控制层,用于处理资源的上传、获取和下载,本项目中存储的都是图片资源。
MallStorage是mall_storage表的实体类。MallStorageExample是帮助MallStorage构造SQL语句的工具类。MallStorageMapper是本地对象存储的数据层的接口,供服务层调用。MallStorageService是本地对象存储的服务层的接口,供控制层的类调用。storage包中存放的是用于配置本地对象存储的类,这里不详讲。
util 包中存放的是工具类。
其中CharUtil 用于获取随机字符串。
JacksonUtil和JsonStringArrayTypeHandler用于JSON解析。
JwtHelper和UserTokenManager用于token的创建和验证,以及通过token获取用户ID。
ObjectUtil 用于同时判断多个对象是否为null。
RegexUtil定义了常用的正则表达式。
ResponseCode 定义了业务处理的状态码。
ResponseUtil 是控制层返回值的数据包装类,十分常用。
CommonApplication 是启动类。
resources下的mapper中存放的是数据层执行SQL语句的 XML文件。