开发一个自己的starter

starter的开发

依赖大家都引入过吧,就是那种dependency,有没有想过自己也写一个starter呢? 接下来就跟着我看看starter的开发吧,过程很简单,需要花费您不到半个小时的时间。

为什么要开发starter

好处: 使用了starter,开发者只要引入了starter,可以在配置文件当中写配置,自动创建客户端,以前我们用到一个东西的时候就会引入starter,然后就可以进行配置,我将它称为个性化,然后使用一些注解就可以用了。另外,注意到在写配置文件的时候,会有提示,所以我们自己写的starter最好也有提示.

在这里插入图片描述

对pom文件改动

引入这个依赖就可以帮助开发者实现自动代码补全功能。
注意:
在这里插入图片描述
在这里插入图片描述
最终的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.10</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<!--springboot的核心启动器-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<!--比较关键-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

删除启动类,写配置

在这里插入图片描述编写具体代码在里面,直接返回一个ApiClient(这个是你想让代码return的方法)

在resources下写一个META-INF/spring.factories,当中写org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.demo.ApiClientConfig

maven install

  1. 用maven进行install操作,安装为本地的依赖

引入starter

  1. 将之前api那个项目里面写的东西删掉,引入自己写的starter
    在这里插入图片描述

导入新的项目中:

在这里插入图片描述
controller之前的代码

package com.example.demo.controller;

import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * 测试接口
 *
 * @version 1.0
 * @Author carrot
 * @Date 2023/3/29 10:34
 */
@RestController
@RequestMapping("/name")
public class ApiController {
    /**
     * get方法获取名字
     *
     * @param name 名字
     * @return "GET 你的名字是: "+name
     */
    @GetMapping("/")
    public String getNameByGet(String name) {
        return "GET 你的名字是: " + name;
    }

    /**
     * post方法获取名字
     *
     * @param name 名字
     * @return "POST 你的名字是: "+name
     */
    @PostMapping("/")
    public String getNameByPost(@RequestParam String name) {
        return "POST 你的名字是: " + name;
    }

    /**
     * 通过JSON获取名字
     *
     * @param user json对象
     * @return "JSON 你的名字是: " + user.getName()
     */
    @PostMapping("/user")
    public String getNameByUser(@RequestBody User user, HttpServletRequest request) {
        String accessKey = request.getHeader("accessKey");
        String secretKey = request.getHeader("secretKey");
        if (!secretKey.equals("carrot")){
            throw new RuntimeException("无权限");
        }

        if (!accessKey.equals("carrot")){
            throw new RuntimeException("无权限");
        }
        //todo 根据request获取请求的参数,然后再次将用户请求参数和secretKey通过签名算法生成一个签名,
        // 判断传来的签名和生成的签名是否一致,另外,还要判断时间戳和当前时间不超过五分钟以及随机数的范围不超过10000,
        // 当然这里的secretKey也是需要到数据库当中去查的
        return "JSON 你的名字是: " + user.getName();
    }
}

效果

在这里插入图片描述
当然,自己写的starter也可以直接在maven的库里面看到
在这里插入图片描述

测试一波:

在这里插入图片描述
好神奇是不是!!!

这只是将自己写的starter放到了本地仓库,如果你也想让别人访问到你写的starter,可以将其发布到maven仓库中,安利给你身边的小伙伴,说不定还能蹭一波热度捏。

最后,创作不易,给个小心心捏
在这里插入图片描述

要制作一个 Spring Boot Starter,首先需要了解什么是 Starter。 在 Spring Boot 中,Starter 是一种可重用的依赖项,它封装了特定功能的自动配置和相关依赖项。它使得在项目中引入某个功能变得非常简便,并且可以减少配置的复杂性。 下面是制作一个 Spring Boot Starter 的基本步骤: 1. 创建一个 Maven 或 Gradle 项目:首先创建一个空的 Maven 或 Gradle 项目作为 Starter 的基础。 2. 添加相关依赖:在项目的 pom.xml(或 build.gradle)文件中添加 Spring Boot Starter 相关的依赖项。你可以根据你的 Starter 需要封装的功能来选择合适的依赖项。 3. 创建自动配置类:创建一个自动配置类,命名为 `XxxAutoConfiguration`(Xxx 是你的 Starter 的名称),该类负责配置和初始化相关的组件和功能。 4. 创建 Starter 类:创建一个 Starter 类,命名为 `XxxStarter`,用于对外提供 Starter 功能的启动点。该类可以使用 `@EnableAutoConfiguration` 注解来启用自动配置。 5. 打包和发布:使用 Maven 或 Gradle 将项目打包成 JAR 文件,并发布到 Maven 仓库或本地仓库中,以供其他项目使用。 6. 添加文档和示例:编写清晰的文档和示例代码,帮助其他开发者了解如何使用你的 Starter。 以上是制作一个 Spring Boot Starter 的基本步骤,你可以根据具体的功能需求来定制你的 Starter。制作一个好的 Starter 可以提高开发效率,减少重复配置,使得项目更加模块化和可维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值