SpringBoot自定义Starter组件,你学会了吗?

目录:
1、SpringBoot自定义starter组件简介;

2、SpringBoot自定义starter组件流程;

3、SpringBoot自定义starter组件效果展示;

——————————————————————————————————————————

1、SpringBoot自定义starter组件简介;

在实际开发中,得益于SpringBoot的约定优于配置 ( convention over configuration ),我们从繁琐的配置中抽身,全力以赴与代码做斗争,期间,即使业务场景变动,仍难免会遇到某些相似需求,需要书写一些常用功能代码,此时,为避免代码冗余,提高代码复用性,我们可以根据springboot的COC的特性,自己将这些功能代码封装后,打成jar包组件,将其放到maven仓库中,在使用到该功能的工程中导入该组件jar包依赖即可。

2、SpringBoot自定义starter组件流程;

该例基于某公益网站对捐赠者的简单正面反馈,小伙伴们可自行参考:

a.首先向大家介绍自建starter组件的项目结构,其中,feedback-spring-boot-starter-autoconfiguraion是我们项目的主体模块,内含业务代码,而feedback-spring-boot-starter它是一个空模块,只是在pom.xml中引入了feedback-spring-boot-starter-autoconfiguraion,也是我们以后引入的组件依赖artifactId。下面的主要展开介绍着feedback-spring-boot-starter-autoconfiguraion中的内容。

下图为feedback-spring-boot-starter的项目结构:

 下图为feedback-spring-boot-starter的pom.xml配置:

下图为feedback-spring-boot-starter-autoconfiguraion 的pom.xml配置:

b.主配置类FeedbackConfigurationProperties的注解及含义:

@Configuration->该类为配置类;

@EnableConfigurationProperties(FeesbackPropertis.class)->将FeesbackPropertis存放到IOC容器中并读取其类注解,将其属性值与配置文件绑定;

@Bean->将FeedbsckService存放到IOC容器中;

@ConditionalOnMissingBean(FeedbsckService.class)判断IOC容器中是否存在FeedbsckService对象,若存在,不执行该方法, 反之若不存在则执行。

下图为主配置类FeedbackAutoConfiguration:

c.定义在service层的主体业务类,类中方法为实现业务功能,类中用@Autowired注解注入bean做成员变量,业务所需变量抽为bean的成员变量。

下图为主体业务逻辑类FeedbackService:

 

d.将主体业务代码所需的全部参数设置为一个javabean,放在pojo中,成员私有化、内置无参构造、get和set方法、toString方法(可以不加,我添加用来测试),其中类注解@ConfigurationProperties(prefix="feedback")含义是与主配置类FeedbackAutoConfiguration上注解@EnableConfigurationProperties(FeesbackPropertis.class)呼应,让其扫描到并且在配置文件application.yml中读取key前缀为feedback的配置内容为其属性赋值。

下图为类名为FeesbackPropertis的javabean:

下图为javabean成员变量赋初始值的application.yml:

e.至关重要的一步:至此,我们的组件主体算是写完了,接下来我们要考虑使用该组件的工程如何在springboot框架中将该组件导入ioc容器并配置,根据分析springboot初始加载自动配置类源码可知,只有将它放到resources/META-INF/spring.factories中,它才会在调用工程中启动初始化时被加载,并自动配置,因此,我们创建该文件夹,并参照springboot的该文件夹内容格式写入。

下图为resources/META-INF/spring.factories:

 f.组件已配好将它打包放入到我们的maven而本地仓库。

下图为打包流程示意:

完成啦!!!!!!下面是测试环节!!!

3、SpringBoot自定义starter组件效果展示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值