此博客用于个人学习,来源于网上,对知识点进行一个整理。
1. 通用模块功能介绍:
在我们的项目中,一些通用代码存在于多个模块中,例如我们的广告投放系统和广告检索系统中都有存在,不适合在两处都定义。特别是一旦发生更新或者是修改代码的时候,两处都会更改。我们更希望的是,对于这部分的代码,一处定义好,其他地方需要的时候拿过来用就可以了。这个时候,就需要定义一个通用的模块。
1.1 设计思想:
- 通用的代码、配置不应该散落在各个业务模块中,不利于维护与更新。
- 一个大的系统,响应对象需要统一外层格式。
- 各种业务设计与实现,可能会抛出各种各样的异常,异常信息的收集也应该做到统一。
1.2 实现的功能:
-
统一了响应的格式:
-
自定义了通用的异常:
好处如下:
- 不直接展示错误,对用户友好。
- 异常分类,便于排查问题,DEBUG。
- 降低业务代码中对异常处理的耦合。
2. 统一响应处理:
2.1 创建工程:
在 imooc-ad-spring-cloud 下,创建 module:imooc-ad-service,然后在该 module 创建子 module:ad-common。
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 指定父pom, 注意它是 imooc-ad-service 的子模块 -->
<parent>
<artifactId>imooc-ad-service</artifactId>
<groupId>com.imooc.ad</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<!-- 当前项目/模块的坐标, groupId从父模块中继承 -->
<artifactId>ad-common</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging