温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringBoot 中怎么自定义starter

发布时间:2021-06-22 14:33:40 来源:亿速云 阅读:188 作者:Leah 栏目:大数据

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

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

SpringBoot 中怎么自定义starter

2 在1步骤中创建的空项目中创建两个模块,创建方式如下图所示 SpringBoot 中怎么自定义starter

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

 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	 
<modelVersion>4.0.0</modelVersion>

<groupId>com.mao.starter</groupId>

<artifactId>mao-spring-boot-starter</artifactId>

<version>1.0-SNAPSHOT</version>

<!-- 启动器-->

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	
    <java.version>1.8</java.version>
	
</properties>

<dependencies>

     <!-- 引入自动配置模块-->
	 
    <dependency>
	
        <groupId>com.mao-starter</groupId>
		
    <artifactId>mao-spring-boot-starter-autoconfigurer</artifactId>
	
    <version>0.0.1-SNAPSHOT</version>
	
    </dependency>
	
	</dependencies>

</project>

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

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 http://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>1.5.21.RELEASE</version>
	
    <relativePath/> <!-- lookup parent from repository -->
	
</parent>

<groupId>com.mao-starter</groupId>

<artifactId>mao-spring-boot-starter-autoconfigurer</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>mao-spring-boot-starter-autoconfigurer</name>

<description>Demo project for Spring Boot</description>

<properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	
    <java.version>1.8</java.version>
	
</properties>

<!-- 所有要引入的基本配置-->

<dependencies>

    <dependency>
	
        <groupId>org.springframework.boot</groupId>
		
        <artifactId>spring-boot-starter</artifactId>
		
    </dependency>
	
</dependencies>

</project>

3 创建如下图的3个类

SpringBoot 中怎么自定义starter

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 {

@Autowired

helloProperties helloPropertie;

@Bean

public HelloService helloService(){

    HelloService service = new HelloService();
	
    service.setHelloPropertie(helloPropertie);
	
    return  service;
}

}

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

SpringBoot 中怎么自定义starter spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.maostarter.mao.helloServiceAutoConfiguration

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

不要一出现问题就百度

SpringBoot 中怎么自定义starter

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

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 http://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.1.6.RELEASE</version>
	
    <relativePath/> <!-- lookup parent from repository -->
	
</parent>

<groupId>com.autostart.test</groupId>

<artifactId>autostart</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>autostart</name>

<description>Demo project for Spring Boot</description>

<properties>

    <java.version>1.8</java.version>
</properties>

<dependencies>

    <dependency>
	
        <groupId>org.springframework.boot</groupId>
		
        <artifactId>spring-boot-starter-web</artifactId>
		
    </dependency>
	
    <dependency>
	
        <groupId>com.mao.starter</groupId>
		
        <artifactId>mao-spring-boot-starter</artifactId>
		
        <version>1.0-SNAPSHOT</version>
		
    </dependency>
	
    <dependency>
	
        <groupId>org.springframework.boot</groupId>
		
        <artifactId>spring-boot-starter-test</artifactId>
		
        <scope>test</scope>
		
    </dependency>
	
</dependencies>

<build>

    <plugins>
	
        <plugin>
		
            <groupId>org.springframework.boot</groupId>
			
            <artifactId>spring-boot-maven-plugin</artifactId>
			
        </plugin>
		
    </plugins>
	
</build>

</project>

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

SpringBoot 中怎么自定义starter

7 创建一个测试用例

@Controller

public class HelloController {

@Autowired

 HelloService helloService;
 
@ResponseBody

@RequestMapping("/hello")

public String Hello(){

    return helloService.sayHelloMao("haha");
	
}

}

8 测试结果如下图所示

SpringBoot 中怎么自定义starter

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI