springboot自定义starter-《Springboot编程思想》

很多时候,我们希望将一些功能封装到一个工具类里面保证代码的可重用,这时候就会写很多很多的工具类,我们不妨把这写生成一个依赖,需要使用的时候直接引入不香吗?因此《Springboot编程思想》实现了这个操作,原书中的实践流程如下:

1.整个项目结构

在这里插入图片描述

2.新建一个springboot工程,空空的那种哟

如图中的springbootOraginCode

3.新建一个formatter-spring-boot-starter 模块

如图中的formatter-spring-boot-starter,这个的名字将作为依赖的artifactId

4.在formatter-spring-boot-starte建包

前面四级不变,为基本包,后面那个包就与接口名字一样,也就是artifactId的第一个词。

5.编写formatter接口

注意包名

package cloud.xlh.samples.autoconfigure.formatter;

public interface Formatter {
    String format(Object Object);
}

6.编写实现类DefaultFormatter

package cloud.xlh.samples.autoconfigure.formatter;

public class DefaultFormatter implements Formatter {
    @Override
    public String format(Object Object) {
        return String.valueOf(Object);
    }
}

7.编写自动配置类FormatterAutoConfiguration生成bean交给spring管理

package cloud.xlh.samples.autoconfigure.formatter;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FormatterAutoConfiguration {

    @Bean
    public Formatter defaultFormatter() {
        return new DefaultFormatter();
    }
}

8.最重要的一点,新建spring.factories文件

在类路径即resource目录下建一个META-INF目录,在此基础下建一个spring.factories文件,写上

//固定
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
//配置类的全限定类名
cloud.xlh.samples.autoconfigure.formatter.FormatterAutoConfiguration

9.编写引导类FormatterBootstrap

package cloud.xlh.samples.autoconfigure.formatter;

import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;

import java.util.HashMap;

@EnableAutoConfiguration
public class FormatterBootstrap {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = new SpringApplicationBuilder(FormatterBootstrap.class).web(WebApplicationType.NONE)
                .run(args);
        HashMap<String, Object> data = new HashMap<>();
        data.put("name","小马哥");
        Formatter formatter = context.getBean(Formatter.class);
        System.out.println( formatter.format(data));
        context.close();
    }
}

10.在工程总的pom.xml加上启动器依赖

 			 <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-autoconfigure</artifactId>
                <version>2.3.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>cloud.xlu</groupId>
                <artifactId>formatter-spring-boot-starter</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
  

11.install一下formatter-spring-boot-starter

12.运行引导类即可

注意:运行后要找到8080的java.exe占用端口杀掉pid,否则运行其他端口为8080的springboot项目会爆端口占用的错误,同时,每次install才能运行引导类。

13.将自定义的启动器打包

idea右边maven侧边栏打开在这里插入图片描述
成功之后
在这里插入图片描述

14.安装jar包到本地仓库

找到jar目录,cmd进去,如我的

编写pom.xml文件对应的参数(groupId,artifactId、version等)

mvn install:install-file

-Dfile=jar文件所在路径(这里使用绝对路径)

-DgroupId=包名

-DartifactId=项目名

-Dversion=版本号

-Dpackaging=jar

command:
D:\IDEA\IdeaProjects\springbootOraginCode\formatter-spring-boot-starter\target>mvn install:install-file -Dfile=formatter-spring-boot-starter.jar -DgroupId=cloud.xlh -DartifactId=formatter-spring-boot-starter -Dversion=1.0.0 -Dpackaging=jar

-Dfile=formatter-spring-boot-starter.jar 中的值只要与磁盘中jar包名字对应即可,其他的参数其实可以随便,但为了符合规范就使用规范:最终引入的效果:

 <dependency>
            <groupId>cloud.xlh</groupId>
            <artifactId>formatter-spring-boot-starter</artifactId>
            <version>1.0.0</version>
        </dependency>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
自定义Spring Boot Starter是一种用于简化Spring Boot应用程序配置和依赖管理的机制。它由几个组件组成,包括starter包、autoconfiguration包和配置文件。 首先,你需要创建一个Maven工程,并创建三个模块。其中,starter包负责引入依赖,autoconfiguration包负责实现装配。在autoconfiguration包中,你需要定义对应的properties类、configuration类和核心业务类。此外,你还需要在autoconfiguration包的/resources/META-INF/目录下添加spring.factories文件,并配置org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.qiejk.demo.springboot.autoconfiguration.DemoAutoConfiguration。这一步是Spring Boot装配的核心,只有添加了这个内容,Spring Boot才会进行自动装配。\[1\] 在父模块的pom文件中,你需要引入Spring Boot的依赖,例如spring-boot-starter-web,以及指定Spring Boot的版本。这样,你的自定义starter模块就可以基于Spring Boot进行开发和使用。\[2\] 最后,你需要创建一个配置文件,用于告诉Spring Boot在启动时扫描该配置文件,并将其中的配置类加载到Spring容器中。这个配置文件的作用是指定自动配置类的位置。\[3\] 通过以上步骤,你就可以创建自定义Spring Boot Starter,并在应用程序中使用它来简化配置和依赖管理。 #### 引用[.reference_title] - *1* [如何自定义springboot-starter](https://blog.csdn.net/sinat_29434159/article/details/123995794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [SpringBoot自定义Starter篇](https://blog.csdn.net/m0_46571920/article/details/122910726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Fire king

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

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

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

打赏作者

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

抵扣说明:

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

余额充值