背景
有一些在各个项目经常会用到的工具类,每次做项目时都要把这些工具类复制过去,感觉有点麻烦了,就想能不能把这些工具类提取出来封装,打包成jar,要用的时候就不用每次都复制那么多工具类了,只需要拿这一个jar就行。后面发现可以把它们制作成maven依赖,这样也不用拿jar了,直接在pom.xml中引入就行。
构思
接下来我们就需要先想好哪些工具类是适合封装的?
我目前考虑到适合封装的有两点要求:通用性高;耦合度低。
1、通用性高
就是这个类在不同项目中用到,代码都差不多甚至一样,这种通用性就很高,可以考虑提取出来。
2、耦合度低
就是这个类在不同项目中用到,它的依赖性低,独立性高;如果这个类它 import 了很多不同的jar包,并且这些jar包都是需要引入maven依赖的,这种我就觉得不适合提取。就是在这个(自定义maven依赖)项目中,我们要尽可能少的引入第三方依赖。
(以上两点仅我个人看法,考虑不周或有其他补充可以在评论区评论😘)
开始
既然已经确定好哪些类适合封装了,那就开始动手吧!
创建项目
首先我们创建一个maven项目
点击finish后,我们看pom.xml
常用类提取、修改
接下来我们把常用的一些类复制到这个项目,做对应的修改。
比如我自定义的一个异常类:ExceptionVo:它一开始是这样的,用了lombok依赖。
但是我们需要尽可能减少依赖,就不引入lombok了,而是用传统的get、set方法。
或者是每个项目必用的 RedisUtil 工具类,这个类就需要引入 spring-data-redis 依赖,如下:
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>fuhua</groupId>
<artifactId>fuhua-util</artifactId>
<version>1.0.0</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
</dependencies>
</project>
这个它一开始是用 @Component 注解的组件,拿过来后不用这个注解,而是在使用的时候,在 @Configuration 注解的类中,手动配置 RedisUtil bean。
打包、推送到本地maven仓库
封装改完之后,我们就可以打包了。
后续我们改了这里面的代码,重新执行install命令就行。
其他项目引用
接下来我们就在其他项目中引入我们制作的依赖,来测试一下