查看Spring Boot的源码,starter包并没有真正的代码,代码都在autoconfigurer包中,所以我也可以照葫芦画瓢,创建一个starter项目和一个autoconfigurer项目,在autoconfigurer项目中写自动配置类,在starter项目中依赖autoconfigurer项目,到时候别人用就直接引入starter的坐标就能使用我自定义的starter了


Mybatis的starter与autoconfigurer也是自己写的,所以我们的命名方式可以根据它这样来定义为ahead-spring-boot-starter,ahead-spring-boot-starter-autoconfigurer

1、创建一个普通的maven工程,打包方式为jar,名称为ahead-spring-boot-starter

2、创建一个Spring boot应用,命名为ahead-spring-boot-starter-autoconfigurer,不需要添加任何组件,只保留默认的spring-boot-starter依赖就行,删除自带的maven插件,最终的pom文件如下

3、编写自定义的starter

我在前面就写过SpringBoot的配置原理,通过全局配置文件中的值与xxxProperties属性映射并添加到组件中去,在配置类中就能获取到xxxProperties对象并获取其中的属性值设置给某些组件的属性,最后在classpath路径下的META-INF文件夹下的spring.factories文件中指定需要自动配置的类,就会被SpringBoot读取到,达到了自动配置的效果

3.1、创建HelloProperties类并指定与全局配置文件中的那个下面的属性进行映射

3.2、编写HelloService组件

3.3、编写HelloAutoConfiguration自动配置类,并注册HelloService组件

3.4、在classpath下的META-INF文件夹下的spring.factories文件指定要自动配置的类(之前用@Configuration注解标注的配置类因为在Spring Boot主配置类的扫描范围内,而这里的扫描不到,就需要在文件中指定自动配置类的位置,这样Spring Boot就能获取到)

3.5、在starter项目中引入autoconfigurer项目的坐标,并通过maven命令先打包

ahead-spring-boot-starter-autoconfigurer项目在打包ahead-spring-boot-starter项目

4、编写一个Spring Boot应用进行测试

4.1、引入自定义的starter

4.2、在全局配置文件中指定HelloProperties中的name属性值

4.3、编写HelloController并启动应用通过浏览器访问测试。

4.4、自动配置成功

springboot 扫描文件夹_Spring Boot学习07_自定义starter相关推荐

  1. 扫描java类文件_java递归与非递归实现扫描文件夹下文件的实例代码

    java递归与非递归实现扫描文件夹下所有文件 java扫描指定文件夹下面的所有文件,供大家参考,具体内容如下 扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种 ...

  2. java 多线程 扫描,多线程扫描文件夹耗时方法分析

    在这里Java的方法中有线程递归,不懂得用什么方法求运行时间遇到一个有趣的问题,多线程扫描文件夹求运行时间.一般这种扫描文件夹耗时好像都是用的递归遍历一下进行计时,头一次看到这种一个文件夹一个线程的, ...

  3. Win10怎么使用Windows Defender扫描文件夹中的恶意软件?

    Windows 10 附带一个名为 Windows Defender 的免费内置防病毒程序,可提供实时保护并能够对您的计算机执行扫描. 它还允许您执行自定义扫描,让您指定要扫描恶意软件的特定文件夹或驱 ...

  4. C#递归扫描文件夹中的文件

    为什么80%的码农都做不了架构师?>>>    本例是递归扫描文件夹中文件,并将文件夹的文件信息,全部显示到listview控件中,一下是源代码 /// <summary> ...

  5. java 递归扫描文件夹_java扫描文件夹下面的所有文件(递归与非递归实现)

    java中扫描指定文件夹下面的所有文件 扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件. 递归方式 非递归方式(采用队列或 ...

  6. springboot pom文件指定jdk_Spring Boot 入门

    SpringBoot 基本应用 约定优于配置 约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计范式. 本质上是说,系统.类库或框架应该假定合理 ...

  7. springboot开启debug日志_Spring Boot SLF4J日志实例(五十)

    默认情况下,SLF4j日志记录包含在Spring Boot Web应用程序中,只需要启用它就可以了. 注意:查看此Spring Boot Logback XML模板以了解默认的日志记录模式和配置. S ...

  8. 扫描文件夹_按下苹果手机这个键,立马变身成为扫描仪,你不会还不知道吧?...

    苹果手机在我国比较热销的一款手机,它不仅性能强大,系统流畅,还有许多比较实用的功能,就比如今天我们所谈及的备忘录功能,很多人只以为它仅能够用来记录事情,其实不然,它还自带扫描仪功能,纸质文档能够轻松变 ...

  9. Linux内核 crypto文件夹 密码学知识学习

    密码算法分类 对称算法 非对称算法 消息摘要(单向哈希)算法 这些算法作为加密函数框架的最底层,提供加密和解密的实际操作.这些函数可以在内核crypto文件夹下,相应的文件中找到.不过内核模块不能直接 ...

最新文章

  1. MultipartFile类常用的一些方法
  2. 【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 )
  3. java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...
  4. java单例模式几种实现方式
  5. http 状态码 504 502
  6. SetupFactory安装制作心得
  7. MySQL面试 - 读写分离
  8. python能做什么excel-使用 Python 可以做什么?
  9. OPNET网络仿真分析-1.2、OPNET安装教程
  10. Numpy系列(三)常用random随机函数汇总
  11. 【一起学习输入法】华宇拼音输入法开源版本解析(7)
  12. mp4播放器带后台开源源码
  13. 骇客学堂:网络入侵检测初步探测方法
  14. 电商双十一购物节促销活动及短信营销解决方案
  15. 较早版本OAI ENB启动问题解决
  16. html5中扇形的绘制
  17. 看懂了再说自己是程序员哈哈
  18. 小白网工成长笔记之OSPF(1)
  19. c语言带进位循环左移,带进位循环左移指令.ppt
  20. PreScanCarSim联合仿真实现车道保持

热门文章

  1. 威胁情报基础:爬取、行走、分析
  2. 详解Java中ArrayList、Vector、LinkedList三者的异同点
  3. Android studio 使用心得(八)----测试程序单元测试
  4. BitMap 的基本原理和实现
  5. Windows2003系统无法运行CS游戏的解决方案
  6. 找2个数组中相同的数
  7. 回顾Google IO 2016 -Keynote【图解】
  8. Python 打包工具cx_freeze 问题记录及解决办法
  9. ubuntu 15.10 安装jdk
  10. Webservice接口