starter详解

一、starter是什么?

在讨论starter到底是什么之前,先回顾一下在没有starter的时候,我们是如何开发的,以SpringMVC为例。

  1. 引入spring,springmvc相关依赖
  2. 在web.xml中配置servlet,listener等配置项
  3. 在xxx.xml中配置处理器映射器,处理器适配器,视图解析器等配置项

这些步骤,在我们每次使用SpringMVC进行开发的时候,都需要进行重复、繁复且容易出错的前置工作。

starter就是对上述过程的一个抽象,你能够获得一个你需要的技术一站式服务,无需进行这些重复的工作(处理依赖,配置)。有了starter,只需要引入starter依赖并在application.yml中配置响应的参数,就能够实现自动装配。


    org.springframework.boot
    spring-boot-starter-web

二、自定义starter并使用
  • 从上面对starter的分析,可以总结出,starter需要完成以下几个目标:
  1. 当满足条件时能够生成定义的Bean,并注册到容器中去;
  2. 能够自动配置项目所需要的配置;
  • 为了实现上述目标,自定义starter涉及模块如下:
  1. 自动配置类,用来初始化相关的 bean ;
  2. 指明自动配置类的配置文件META-INF\spring.factories ;

项目的@SpringBootApplication注解会解析spring.factories文件,并装配该文件中配置的配置类。

  1. 自定义属性实体类,声明 starter 的应用配置属性 ;
  • 下面以自定义elasticsearch-starter为例进行说明
自定义starter
// 自动配置类
// 属性配置
// spring.factories

将项目打包部署到本地仓库 mvn install

使用starter
// pom.xml
// application.yml
// 测试数据

你可能感兴趣的:(starter详解)