springboot以其自动装配的能力被广泛应用,我们在写代码时肯定遇到过很多spring-boot-starter命名的依赖,比如spring-boot-starter-web,在pom文件中引入这些starter依赖后,spring盼望作文400字杀戮战士3boot就能通过自动装配的技术扫描到这些类并装载到bean容器中。
除了sp英语口语对话ringboot官方的这些starter外,我们自己也可以开发starter。为了和官方的starter区分,建议自定义的starter命名格式为xxxx-spring-boot-starter,比如mybatis-spring-boot-starter。
本文将介绍如何自己实现一个starter。
在写自己的starter之前,很有必要看一下别人是怎样去写的。这里拿redisautoconfiguration这个类作为例子。
springboot在启动时会通过自动装配去扫描项目mata-inf/spring.factories文件,这个文件中定义了所有需要去自动装配的类。redis的自动装配类就是下图的redisautoconfiguration。
进入 redisautoconfiguration后,首先看最重要的几个注解,@configuration不用多提了,@conditionalonclass表示当这个注解后面的类存在时,该bean才会被加载。下图中很明显redisoperations并不存在,所以redis不会被自动装配进去。
@enableconfigurationproperties用于自动加载配置类的信息,配置类和我们平常写的基本一样,通过configurationproperties读取propertie风云天地 电视剧s或者yaml中的配置信息。
redisautoconfiguration这个类中定义的bean有两个,我们应该都比较熟悉。@conditionalonmissingbean的意思是当spring容器中不存在这个bean的时候,才会加载这个bean,所以如果我们在代码中自己定义了redistemplate之后,注入到bean容器中的就是我们自己写的那个bean。
看到这里基本已经知道一个starter的实现方案了,接下来就写一个简单的starter。
要做的这个starter其实很简单,就是输出配置文件中配置的信息。
首先新建一个maven项目,在项目中新建两个module,我给两个项目分别命名为report-spring-boot-starter和example-spring-boot
首先介绍report-spring-boot-starter,这是一个starter,主要实现输出一些内容的功能,我们可以完全按照redisautoconfiguration去写。首先新建自动装配类:reportautoconfiguration
当reportoperation存在时才会加载该配置,激活配置文件reportproperties
reportproperties如下:
接下来是实现自动注入的关键,前面已经说到了,springboot会去扫描依赖jar包中meta-inf/spring.factories中的内容,因此在resources目录下新建meta-inf/spring.factories,写下配置信息:
这样一个简单的starter就完成了。
接下来在example-spring-boot这个module中调用上面的starter,首先第一步引入相关依赖,这里只需要引入springboot相关依赖和自己写的starter依赖即可:
接着写一个测试的controller测试自动注入的效果:资源与环境专业
在配置文件中增加一条配置:
运行项目调用接口,可以发现reportoperation这个bean已经被自动注入了。
本文结合redis自动注入的例子,写了一个属于自己的starter,希望对大家有所帮助。我是鱼仔,我们下期再见!
到此这篇关于利用springboot写一个属于自己的starter的文章就介绍到这了,更多相关springboot写一个starter内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-06 03:00:25,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8651e1058a70f79cbafcc44c2000af48.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:教你利用SpringBoot写一个属于自己的Starter.doc
本文 PDF 下载地址:教你利用SpringBoot写一个属于自己的Starter.pdf
留言与评论(共有 0 条评论) |