栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

自定义starter并与Spring boot完成整合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自定义starter并与Spring boot完成整合

自定义starter与Spring boot完成整合
在了解Spring boot自动配置及第三方starter整合(例如 mybatis-spring-boot-starter)的原理后,准备自己实现一个starter,并与Spring boot完成整合。
1.首先回顾下mybatis-spring-boot-starter关键点的实现
点击进入 mybatis-spring-boot-starter 依赖内部,有一个mybatis-spring-boot-autoconfigure依赖,关键配置文件spring.factories就在这个包里



在MybatisAutoConfiguration类中完成了SqlSessionFacotry bean的生成

Spring boot在启动时会加载根路径下所有spring.factories文件,并筛选出key为EnableAutoConfiguration的类进行实例化bean放入IOC容器,以此完成 Spring boot和mybatis的整合
2.参考mybatis-spring-boot-autoconfigure的实现,现在自己实现一个starter
(1)目前结构如下

demo是一个spring boot项目,custome-spring-boot-autoconfigure和customer-spring-boot-starter模拟第三框架
(2)custome-spring-boot-autoconfigure项目的功能是将当前日期格式化为yyyy-MM-dd,代码如下

public class DateUtil {
    public String getDate(){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        return simpleDateFormat.format(new Date());
    }
}

新建DateUtilConfiguration 配置类,并在resources目录下创建/meta-INF/spring.factories文件,这样Spring boot项目启动时会加载该配置文件,并将DateUtil bean放入IOC容器。

@Configuration
public class DateUtilConfiguration {
    @Bean
    public DateUtil getDateUtil(){
        return new DateUtil();
    }
}

spring.factories文件添加key-value键值对

org.springframework.boot.autoconfigure.EnableAutoConfiguration=
com.liu.test.DateUtilConfiguration

(3) 在customer-spring-boot-starter的pom.xml文件中引入custome-spring-boot-autoconfigure的坐标


    
        org.example
        custome-spring-boot-autoconfigure
        1.0-SNAPSHOT
    

在demo的pom.xml文件中引入customer-spring-boot-starter的坐标


            org.example
            customer-spring-boot-starter
            1.0-SNAPSHOT
        

整体依赖情况
demo---->customer-spring-boot-starter—>custome-spring-boot-autoconfigure
(4)demo项目创建controller.注入DateUtil,调用DateUtil的getDate()方法

@RestController
public class Controller {

    @Autowired
    private DateUtil dateUtil;
    
    @RequestMapping("/test")
    public String test(){
       return dateUtil.getDate();
    }
}

启动demo 浏览器访问localhost:8080/test,结果如下

整合成功。
总结:
第三方 xxxxx-spring-boot-starter整合spring boot需要满足的条件
1.需要有Java config配置类完成bean的生成,这样才能调用bean的方法
2.需要有spring.factories文件来指定需要加载的配置类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673167.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号