加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

一看就会,编写本身的SpringBoot-Starter

发布时间:2019-08-09 01:03:04 所属栏目:移动互联 来源:IT技术圈
导读:开拓本身的starter starter的甜头是,集成浩瀚依靠,提供一个一站式的依靠项。 Starter相等于模块,它能将模块所需的依烂魅整合起来并对模块内的Bean按照情形( 前提)举办自动设置。 行使者只必要依靠响应成果的Starter,无需做过多的设置和依靠, Spring B

 一看就会,编写本身的SpringBoot-Starter 开拓本身的starter

starter的甜头是,集成浩瀚依靠,提供一个一站式的依靠项。 Starter相等于模块,它能将模块所需的依烂魅整合起来并对模块内的Bean按照情形( 前提)举办自动设置。 行使者只必要依靠响应成果的Starter,无需做过多的设置和依靠, Spring Boot就能自动扫描并加载响应的模块。

定名

spring官方的starter呼吁为spring-boot-starter-xxx,以是我们开拓的项目不要以spring-boot开头。 提议写成:xxx公司组织-spring-boot-starter-yyy模块

开拓步调

1.新建Maven项目,在项目标POM文件中界说行使的依靠;

2.新建设置类,写好设置项和默认的设置值,指明设置项前缀;

3.新建自动装配类,行使@Configuration和@Bean来举办自动装配;

4.新建spring.factories文件,指定Starter的自动装配类;

详细代码

1,新建一个springboot项目,在pom文件中增进以下依靠:

  1. <dependency> 
  2.  <groupId>org.springframework.boot</groupId> 
  3.  <artifactId>spring-boot-configuration-processor</artifactId> 
  4.  <optional>true</optional> 
  5. </dependency> 

首要的浸染是在编译时在META-INF下天生spring-configuration-metadata.json 文件,该文件首要为IDE行使。 即可以通过在application.properties文件中通过ctrl + 点击进入设置属性地址的类中

2,设置类

一看就会,编写本身的SpringBoot-Starter

要害是要指定设置项的前缀。这些设置项,也可以配置默认值。

3,自动装配类

自动装配类是整个starter的逻辑焦点。按照设置项的值,自动注入吻合的bean。

在这个项目中,有一个抽象的AbstractMyService,代表客户端会行使的处事bean。

MyStarterServiceV1和MyStarterServiceV2是按照前提注入的详细实现类。

也就是客户端在设置spring101.version=v1会行使MyStarterServiceV1,

设置spring101.version=v2会行使MyStarterServiceV2

一看就会,编写本身的SpringBoot-Starter

4,新建spring.factories文件,指定Starter的自动装配类。

在resources下新建META-INF文件夹,新建spring.factories文件。内容为:

  1. #指定autoconfigure加载的自动装配类是哪个 
  2. org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.uncley.MyAutoConfiguration 

5,打包测试

maven clean install

先install到当地客栈测试

新建设一个平凡的springboot工程:mystarter-use 依靠 在application.properties增进设置

  1. spring101.age=22 
  2. spring101.name=uncleY 
  3. spring101.version=v2 

写一个测试类

  1. @Component 
  2. @Slf4j 
  3. public class MyStarterUseTest implements CommandLineRunner { 
  4.  @Autowired 
  5.  private AbstractMyService myService; 
  6.  @Override 
  7.  public void run(String... args) throws Exception { 
  8.  log.info(myService.hello()); 
  9.  } 

通过修改spring101.version的值可以调查到,实例化了差异的service

一看就会,编写本身的SpringBoot-Starter

【编辑保举】

  1. 2019年上半年企业IT技能在线进修陈诉
  2. IT行业学哪个编程说话有前程?
  3. 为什么凶猛保举Java措施员行使Google Guava编程
  4. 编程说话趋势猜测:Rust将成为主流,React 继承统治编程天下
  5. 开拓说话8月头条编程说话天下的愚笨季候
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读