编写自己的 spring boot starter

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2020/01/bian-xie-springboot-starter.html

依赖

编写spring boot starter 需要以下额外依赖:

        <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.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>

编写starter的功能

这是自己的spring boot starter 所能提供的功能,本例中实现一个加法功能,如下:

package com.jvm123.service;

@Service
public class PlusService {

    public int multiPlus(int... nums) {
        int sum = 0;
        for (int num : nums) {
            sum += num;
        }
        return sum;
    }
}

配置功能组件Bean

package com.jvm123.config;

@Configuration
//@EnableConfigurationProperties(PlusProperties.class)
public class PlusAutoConfiguration {

    @Bean
    public PlusService plusService() {
        return new PlusService();
    }
}

设置自动配置

这一步需要我们将功能组件的配置文件设置到 META-INF/spring.factories 文件中,这样在spring容器启动时,就可以加载我们自己编写的功能组件。如下:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.jvm123.config.PlusAutoConfiguration

至此,一个spring boot starter 已经编写完成。在打包使用之前,我们需要给它起一个名字。官方一般使用spring-boot-starter-web这样的名字,为了区分,官方推荐我们使用xxx-spring-boot-starter形式的名字。所以,在pom文件中可以这样写:

    <groupId>com.jvm123</groupId>
    <artifactId>plus-spring-boot-starter</artifactId>
    <version>1.0.0</version>
    <name>plus-spring-boot-starter</name>
    <description>实现加法功能的spring boot starter</description>
    <url>http://jvm123.com</url>

发表评论