千家信息网

SpringBoot 中怎么自定义starter

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,本篇文章为大家展示了SpringBoot 中怎么自定义starter,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 先创建一个空项目(自己起名字)2 在1步
千家信息网最后更新 2025年02月13日SpringBoot 中怎么自定义starter

本篇文章为大家展示了SpringBoot 中怎么自定义starter,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1 先创建一个空项目(自己起名字)

2 在1步骤中创建的空项目中创建两个模块,创建方式如下图所示

1)创建启动器模块用maven项目我的启动器名称为 mao-spring-boot-starter

 pom.xml如下所示  

     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">         4.0.0com.mao.startermao-spring-boot-starter1.0-SNAPSHOT    UTF-8            UTF-8            1.8                                          com.mao-starter                    mao-spring-boot-starter-autoconfigurer            0.0.1-SNAPSHOT                            

2) 创建自动配置模块,我创建的名字为:mao-spring-boot-starter-autoconfigurer如下图所示![](https://oscimg.oschina.net/oscnet/b7c0a779402394cb5783f3f2eae7a5ce0bc.jpg)pom.xml如下所示

     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">         4.0.0    org.springframework.boot            spring-boot-starter-parent            1.5.21.RELEASE                     com.mao-startermao-spring-boot-starter-autoconfigurer0.0.1-SNAPSHOTmao-spring-boot-starter-autoconfigurerDemo project for Spring Boot    UTF-8            UTF-8            1.8        

                    org.springframework.boot                        spring-boot-starter                            

3 创建如下图的3个类

helloProperties.java //属性类

package com.maostarter.mao;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "map.hello")

public class helloProperties {

public String prefix;public String getPrefix() {    return prefix;}public void setPrefix(String prefix) {    this.prefix = prefix;}public String getSuffix() {    return suffix;}public void setSuffix(String suffix) {    this.suffix = suffix;        }private String suffix;

}

HelloService.java //向外提供服务的类

public class HelloService {

helloProperties helloPropertie;public helloProperties getHelloPropertie() {    return helloPropertie;}public void setHelloPropertie(helloProperties helloPropertie) {    this.helloPropertie = helloPropertie;}public String sayHelloMao(String name){    return helloPropertie.getPrefix()+'*'+name+helloPropertie.getSuffix();}

}

helloServiceAutoConfiguration.java //服务自动注入类

@Configuration

@ConditionalOnWebApplication //web应用才生效

@EnableConfigurationProperties(helloProperties.class)

public class helloServiceAutoConfiguration {

@AutowiredhelloProperties helloPropertie;@Beanpublic HelloService helloService(){    HelloService service = new HelloService();            service.setHelloPropertie(helloPropertie);            return  service;}

}

4 配置spring.factories文件,如下图创建方式

spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.maostarter.mao.helloServiceAutoConfiguration

5 如何生成starter,在这个过程有肯能出现各个问题,一般是jdk版本不对,maven版本问题,出现问题首先仔细阅读控制台的信息

不要一出现问题就百度

6 测试刚刚创建的自定义starter创建个springBoot项目

pom.xml如下所示

     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">         4.0.0    org.springframework.boot            spring-boot-starter-parent            2.1.6.RELEASE                     com.autostart.testautostart0.0.1-SNAPSHOTautostartDemo project for Spring Boot    1.8                    org.springframework.boot                        spring-boot-starter-web                                                com.mao.starter                        mao-spring-boot-starter                        1.0-SNAPSHOT                                                org.springframework.boot                        spring-boot-starter-test                        test                                                                            org.springframework.boot                                    spring-boot-maven-plugin                                                            

6 给之前配置的属性文件复制 如下图所示

7 创建一个测试用例

@Controller

public class HelloController {

@Autowired HelloService helloService; @ResponseBody@RequestMapping("/hello")public String Hello(){    return helloService.sayHelloMao("haha");        }

}

8 测试结果如下图所示

上述内容就是SpringBoot 中怎么自定义starter,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0