創建自己的Spring Boot Starter


抽取通用模塊作為項目的一個spring boot starter。可參照mybatis的寫法。

IDEA創建Empty Project並添加如下2個module,一個基本maven模塊,另一個引入spring-boot-starter依賴。

1) xxx-spring-boot-starter - 引入依賴並管理依賴版本

demo-spring-boot-starter

    <dependencies>
        <dependency>
            <groupId>org.chris</groupId>
            <artifactId>demo-spring-boot-autoconfigure</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

2) xxx-spring-boot-autoconfigure - xxx的自動配置類

 demo-spring-boot-autoconfigure

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
屬性類DemoProperties
@ConfigurationProperties(prefix = "chris.demo")
public class DemoProperties {
    private String name;
    private String content;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

  功能類DemoService

public class DemoService {

    private DemoProperties demoProperties;

    public DemoProperties getDemoProperties() {
        return demoProperties;
    }

    public void setDemoProperties(DemoProperties demoProperties) {
        this.demoProperties = demoProperties;
    }

    public String demoShow(){
        return this.demoProperties.getName() + " ----- " + this.demoProperties.getContent();
    }
}

自動配置類DemoAutoConfiguration

@Configuration
@ConditionalOnWebApplication
@EnableConfigurationProperties(DemoProperties.class)
public class DemoAutoConfiguration {

    @Autowired
    private DemoProperties demoProperties;

    @Bean
    public DemoService demoService(){
        DemoService demoService = new DemoService();
        demoService.setDemoProperties(demoProperties);
        return demoService;
    }
}

最后添加DemoAutoConfiguration到EnableAutoConfiguration中

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.chris.springboot.DemoAutoConfiguration

 

在新的spring boot項目中如果需要引用以上starter,只需要在依賴中添加如下,

        <dependency>
            <groupId>org.chris</groupId>
            <artifactId>demo-spring-boot-starter</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

測試類DemoController

@RestController
public class DemoController {

    @Autowired
    private DemoService demoService;

    @GetMapping("demo")
    public String demo(){
        return demoService.demoShow();
    }
}

附上代碼

demo-starter, demo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM