在学习Spring Boot的过程中,接触最多的就是starter。使用者可以把starter当成是一种服务——使得使用某个功能时不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动通过classpath路径下的类发现需要的Bean,并织入bean。而自动装配就是Springboot最大的特性。
举个例子,spring-boot-starter-jdbc这个starter的存在,使得我们只需要在Application下用@Autowired引入DataSource的bean就可以,Spring Boot会自动创建DataSource的实例。
下面我们用一个不是特别标准的方式定制一个我们自己的Starter。
首先先定义一下我们这个starter要干什么,我们的目的时演练构建Starter的过程,具体逻辑不重要,这里只是封装一个控制台打印类。
第一步:初始化项目
在一个spring-boot项目中新建一个子模块,这里使用的时maven,使用maven创建一个普通的Java项目即可。完成后在src/main/目录下面建立resource文件夹。
在pom.xml文件中引入依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
第二步:初始化项目结构
按下图结构创建完成包和类(熟悉后,不用按这里的步骤进行)。
第三步:编码Starter的核心类
首先是执行类,其实就是一个普通的Java Bean
public class LogCollector {
public void info(String info