自定义maven依赖,封装常用工具类,供其他项目引入使用

文章讲述了如何将常用的高通用性、低耦合度的工具类从项目中提取出来,封装成jar或者maven依赖,以便在其他项目中便捷引用。作者通过示例展示了从创建maven项目,修改和优化工具类,到打包发布到本地maven仓库的整个过程。
摘要由CSDN通过智能技术生成

背景

有一些在各个项目经常会用到的工具类,每次做项目时都要把这些工具类复制过去,感觉有点麻烦了,就想能不能把这些工具类提取出来封装,打包成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命令就行。

其他项目引用

接下来我们就在其他项目中引入我们制作的依赖,来测试一下

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MQTT 是一种轻量级的消息传输协议,可以帮助我们实现设备之间的通信和数据交换。Spring Boot 是一个非常流行的 Java Web 开发框架,提了很多方便的工具和组件,可以帮助我们快速构建 Web 应用程序。将 MQTT 封装Spring Boot 自定义 starter,可以更方便地在 Spring Boot 项目使用 MQTT。 下面是如何将 MQTT 封装Spring Boot 自定义 starter 的步骤: 1. 创建一个 Spring Boot 项目 首先,我们需要创建一个新的 Spring Boot 项目。可以使用 Spring Initializr 或者手动创建一个 Maven 或 Gradle 项目。 2. 添加 MQTT 依赖 在 pom.xml 或 build.gradle 文件中添加 MQTT 的依赖,例如: ```xml <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.5</version> </dependency> ``` 3. 创建 MQTT 工具类 创建一个 MQTT 工具类,用于连接 MQTT 服务器、订阅主题、发布消息等操作。可以参考 Eclipse Paho 官方文档编写 MQTT 工具类。 4. 创建自定义 starter 创建一个新的模块,用于封装 MQTT 工具类,可以命名为 mqtt-spring-boot-starter。 在该模块的 pom.xml 或 build.gradle 文件中添加 Spring Boot Starter 的依赖,例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.4.5</version> </dependency> ``` 在 src/main/resources/META-INF 目录下创建 spring.factories 文件,内容如下: ``` org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.mqtt.MqttAutoConfiguration ``` 其中,`com.example.mqtt.MqttAutoConfiguration` 是自动配置类的全限定名,用于将 MQTT 工具类注入到 Spring 容器中。 5. 创建自动配置类 创建一个自动配置类,用于将 MQTT 工具类注入到 Spring 容器中。可以参考 Spring Boot 官方文档编写自动配置类。 ```java @Configuration @ConditionalOnClass({MqttClient.class}) @EnableConfigurationProperties(MqttProperties.class) public class MqttAutoConfiguration { @Bean @ConditionalOnMissingBean public MqttClient mqttClient(MqttProperties properties) throws MqttException { MqttClient mqttClient = new MqttClient(properties.getBrokerUrl(), properties.getClientId(), new MemoryPersistence()); mqttClient.connect(); return mqttClient; } @Bean @ConditionalOnMissingBean public MqttTemplate mqttTemplate(MqttClient mqttClient) { return new MqttTemplate(mqttClient); } } ``` 在上面的代码中,我们使用了 @ConditionalOnClass 和 @EnableConfigurationProperties 注解来控制自动配置类的启用条件和属性配置。 6. 创建配置文件 在 src/main/resources 目录下创建 application.properties 或 application.yml 文件,用于配置 MQTT 的参数。例如: ```properties mqtt.brokerUrl=tcp://localhost:1883 mqtt.clientId=example-client ``` 7. 测试 使用 Spring Boot 的 starter 机制,我们可以非常方便地将自定义的 MQTT Starter 引入项目中,并直接使用 MQTT 工具类进行操作。例如: ```java @Autowired private MqttTemplate mqttTemplate; public void publishMessage(String topic, String payload) { mqttTemplate.publish(topic, payload.getBytes(), 0, false); } ``` 通过以上步骤,我们就可以将 MQTT 封装Spring Boot 自定义 starter,并提 util 工具访问了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

符华-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值