什么是starter呢?
Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置。不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置上的一点疏忽,导致整个项目莫名其妙的不可用,顿感生活无所依恋,简称生无可恋。
这要归功于组成了 Spring Boot 的各种各样的 starters,有官方提供的,也有第三方开源出来。可以这么说,基本上你打算用的功能都可以找到,如果没有找到,那就再找一找。
用 Spring Boot 的功能组件(例如 spring-boot-starter-actuator、 spring-boot-starter-data-redis 等)的步骤非常简单,用著名的把大象放冰箱的方法来概括的话,有以下三步就可以完成组件功能的使用:
Step1
在 pom 文件中引入对应的包,例如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
Step2
在peroperties或者yml中加入相应的配置,配置都是组件约定好的,需要查看官方文档或者相关说明。
Step3
以上两步都正常的情况下,我们就可以使用组件提供的相关接口来开发业务功能了。
没错吧,这个过程我们在日常的开发中不知道已经实践了多少遍。那么 Spring Boot 为什么能做到如此简单易用呢,它内部是什么样的工作机制呢,不知道你有没有研究过。
@Autowired
RedisTemplete redisTemplete;
开始之前,我们要理解一下 spring boot starter 是什么呢?
它把需要用的其他依赖都囊括进来,放在starter类里面的pom中,把各种依赖的关系都给确定了,打通各个组件之间的连接,并且在中间帮我们省去了很多配置,力图做到使用最简单。
实现一个 starter 有四个要素:
1.starter 命名 ;
2.自动配置类,用于自动创建bean,并交给spring容器 ;
3.自动配置类需要的配置文件 spring.factories ;
4.业务类(参考redisTemplete类) ;
1. 给 starter 起个名字
官方的 starter 的命名格式为:spring-boot-starter-xxx
非官方的 starter 的命名格式为:xxx-spring-boot-starter
你不按人家规范取也行,只是个规范。
我这里取名为plusroax
<groupId>com.plusroax</groupId>
<artifactId>plusroax-spring-boot-starter</artifactId