这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战
前言
前面我们讲到Spring Boot自动装配的原理,并且通过阅读相关源码,我们深入了解自动装配的整个流程,那么接下来,我们就根据之前学习到的知识来实现自己的第一个starter吧。
创建starter项目
首先,我们创建一个maven项目,项目名称就叫做log_starter,然后将之前common中的代码移植过去。这样我们通过这种方式将我们的日志自定义注解应用到后面的工程中去。代码移过来之后,项目的整体结构如下图所示,为了区别看,我们将这次的输入换成了自定义starter保存日志成功
编写spring.factories
接下来也是最重要的一步,我们开始编写spring.factories文件。首先,在resources目录下面新建META-INF目录,然后在该目录下新建spring.factories文件,在文件中配置好我们需要实例化的bean。语法也很简单,之前文章有讲到过。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.tyaa.start.configure.LogConfigure
到这里,我们的starter项目已经构建完毕,后面我们将其进行打包操作。
starter诞生
首先,我们用mvn install打包成jar包,然后放进本地maven仓库中去。利用如下命令打包进仓库。 D:\tools\apache-maven-3.5.4\bin\mvn.cmd install:install-file "-Dfile=log_starter-1.0-SNAPSHOT.jar" "-DgroupId=com.log" "-DartifactId=mylog" "-Dversion=1.0" "-Dpackaging=jar"
D:\tools\apache-maven-3.5.4\bin\mvn.cmd install:install-file "-Dfile=log_starter-1.0-SNAPSHOT.jar" "-DgroupId=com.log" "-DartifactId=mylog" "-Dversion=1.0" "-Dpackaging=jar"
这个我们就得到了自定义的starter,接下来我们在工程中使用看看吧。
使用自定义的starter
还是打开我们之前的工程,先将pom文件中common
模块注释掉
接着引入我们的starter
进入我们的测试方法,将之前的注解删掉,重新引入我们starter中的注解,可以看到
@CommonSaveSystemLog
已经是我们starter中的注解了
我们测试下,看下控制台输出
总结
至此,我们通过自定义starter的方式将我们的自定义日志注解成功引入到我们的项目中去,这样,后续的其他项目,我们可以通过starter的形式快速使用日志功能,是不是比之前的方式更加灵活,而且更方便代码复用。相信通过一系列的文章,大家对Spring Boot的自动装配应该从里到外有了个深刻理解。