当前位置: 首页 > news >正文

【Maven】开发自己的starter依赖

【Maven】开发自己的starter依赖

文章目录

  • 【Maven】开发自己的starter依赖
    • 1. 准备工作
      • 1.1 创建一个项目
      • 1.2 修改pom文件
      • 1.3 修改项目结构
    • 2. 动手实现
      • 2.1 创建客户端类
      • 2.2 创建配置类
      • 2.3 配置路径
      • 2.4 下载到本地仓库
    • 3. 测试

1. 准备工作

1.1 创建一个项目

打开idea,创建一个springboot项目:

image-20230404214050289

点击next,添加两个依赖:

image-20230404214137849

点击finsh,创建成功。


1.2 修改pom文件

将pom文件中的版本号改为 0.0.1 (非必须操作):

<groupId>com.example</groupId>
<artifactId>test-spring-boot-starter</artifactId>
<!--    <version>0.0.1-SNAPSHOT</version>-->
<version>0.0.1</version>

<build> 标签的内容都删掉:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins>
</build>

因为这是一个我们自定义的一套sdk,并不需要打成jar包。


1.3 修改项目结构

image-20230404214916897

将启动类和测试类都删掉,在resources目录下创建一个目录 META-INF ,在其中创建一个文件 spring.factories

image-20230404215413806


2. 动手实现

2.1 创建客户端类

创建一个包 client,在其中创建一个类 CalculateClient :

@AllArgsConstructor
@NoArgsConstructor
@Slf4j
public class CalculateClient {private String host;private String port;public String select(String id) {log.info("连接成功,地址为:{}", host);log.info("连接成功,端口为:{}", port);//返回查询结果return id;}
}

2.2 创建配置类

创建一个包 config ,在其中创建一个类 CalculateConfig :

@Configuration
@ConfigurationProperties("calculate.client")
@Data
@ComponentScan
public class ClientConfig {private String host;private String port;@Beanpublic CalculateClient calculateClient() {return new CalculateClient(host, port);}
}

2.3 配置路径

在我们刚刚创建的 spring.factories 文件中添加如下内容:

#spring boot starter
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.testspringbootstarter.config.ClientConfig

2.4 下载到本地仓库

点击 install 将项目下载到本地仓库,这样才能够提供给别的项目使用:

image-20230404221700131


3. 测试

在别的项目中引入我们刚刚开发的依赖:

<dependency><groupId>com.example</groupId><artifactId>test-spring-boot-starter</artifactId><version>0.0.1</version>
</dependency>

然后在项目的 application.yml 文件中配置 hostport

image-20230404222303950

然后在测试类中编写一个测试方法:

@Autowired
private CalculateClient calculateClient;@Test
public void test(){String result = calculateClient.select("1");System.out.println(result);
}

运行测试方法,结果如下:

image-20230404222525855

到此,一个简单的 starter 就开发完毕了。

http://www.lryc.cn/news/56051.html

相关文章:

  • JVM与Java体系
  • 【C++笔试强训】第十二天
  • C# | 使用DataGridView展示JSON数组
  • Python入门到高级【第四章】
  • 【ChatGPT】ChatGPT 能否取代程序员?
  • 英飞凌Tricore问题排查01_Det/Reset/Trap排查宝典
  • 第六章 共享模型之 无锁
  • 2023Q2押题,华为OD机试用Python实现 -【机智的外卖员】
  • 【华为OD机试真题】密室逃生游戏(javapython)
  • [golang gin框架] 17.Gin 商城项目-商品分类模块, 商品类型模块,商品类型属性模块功能操作
  • Redis安装-使用包管理安装Redis
  • HTML属性的概念和使用
  • ChatGPT基础知识系列之一文说透ChatGPT
  • ‘go install‘ requires a version when current directory is not in a module
  • 蓝桥杯嵌入式第十三届(第二套客观题)
  • FFmpeg进阶:各种输入输出设备
  • 使用Shell笔记总结
  • 反常积分的审敛法
  • python实战应用讲解-【numpy专题篇】numpy常见函数使用示例(十三)(附python示例代码)
  • Java设计模式(十九)—— 桥接模式
  • 多线程并发安全问题
  • P1005 [NOIP2007 提高组] 矩阵取数游戏
  • 百度云【人脸识别】
  • 强化模板模块
  • Vue.js学习详细课程系列--共32节(6 / 6)
  • 【TFT屏幕】1.44寸彩屏
  • vue3组合式api
  • Maven高级-私服
  • 网络优化小结
  • Android 11.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(一)