Spring Boot程序员Java学习笔记

学习spring-boot(三)之自定义starter

2017-02-25  本文已影响3210人  骑驴上塔楼

本篇文档将来介绍如何创建一个spring-boot-starter,来向spring-boot中添加自定义的依赖。

spring官方文档中也有关于这个的说明,你们也可移步这里去查看。

背景

spring-boot里面包含的功能已经十分丰富了,但是有些时候,我们还是需要加入一些不包含在这些模块之中的功能。但又想使之成为优雅的,可重用的组件。于是,我们就想是否能仿造spring-boot中其他组件一样的进行导入和管理。
答案是肯定的。下面我们就一期来跟着官方文档来一步一步的完成一个demo。

开始

命名

假设你的组件名为foo,那么你将包含如下4个工程

新建

新建一个maven项目,其packagepom,比如下面这个

<?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.piggsoft</groupId>
    <artifactId>beetl-spring-boot</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
</project>

紧接着你将在这个项目下建立2个modulebeetl-spring-boot-starterbeetl-spring-boot-autoconfigue
其中starter将是一个空项目,管理依赖和载入,在startersrc/main/resources/META-INF下创建一个名为spring.providers的文件。

provides: beetl-spring-boot-autoconfigue, beetl-core

其中autoconfigue是导入的主要工程,在autoconfiguesrc/main/resources/META-INF下创建一个名为spring.factories的文件,该文件将告知spring-boot,这个autoconfigue的初始类是哪一个。

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.piggsoft.beetl.spring.boot.autoconfigue.BeetlAutoConfiguration

编写自动装配的逻辑

编写这个逻辑还需要了解Condition annotations

例子如下

@Configuration
@EnableConfigurationProperties(BeetlProperties.class)
public class BeetlAutoConfiguration {
}

其中BeetlProperties,为配置信息定义类,从application.yml中获取对应的信息

然后通过spring的@Bean之类的注解进行装载。

附:Demo下载,请点击这里

上一篇 下一篇

猜你喜欢

热点阅读