上篇讲述了Spring Boot自动配置的原理,本篇内容就是关于该核心原理的实际应用。需求即当某个类存在的时候,自动配置这个类的bean并且这个bean的属性可以通过application.properties配置。

  一、新建maven模块

  

  二、属性配置

  

  三、判断依据类

  

  四、配置类

  

  五、注册配置

  

  此操作为自定义自动配置的关键:    

    resources下创建/META-INF/spring.factories。注意:META-INF是自己手动创建的目录,spring.factories也是手动创建的文件,在该文件中配置自己的自动配置类。文件的内容意思就是SpringBoot启动的时候会去加载我们的HelloService到IOC容器中。

    这其实是一种变形的SPI机制,关于该机制参考SPI机制之JDK中的SPI - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)

  六、使用该starter

  在spring boot初体验代码上基础上作修改

    

  该修改将同步就该pom.xml,添加依赖如下:

    

  执行main方法,启动容器。使用浏览器验证该starter生效:

  

  配置参数,如下(注意配置文件路径):

    

  验证结果:

    

  说明默认及配置文件均生效。

  有个问题是这个配置文件的路径,必须是自定义starter下;对于在应用项目下resources下的配置文件验证不生效。

  实际生产中如spring boot提供的starter,引用后再应用模块修改配置文件改变相关配置的属性是有效的。所以这个问题出在哪里呢?

  

最新文章

  1. SQL Server中的锁
  2. oracle/MySQL 中的decode的使用
  3. WebView上实现Java与JavaScript交互
  4. ext3grep 恢复删除
  5. Android(java)学习笔记80:UDP协议发送数据
  6. ASP + ACCESS 上传图片到数据库与将图片读出数据库显示之实现
  7. zTree实现地市县三级级联DAO接口实现
  8. JDBC对sql server的操作
  9. asp.net2.0安全性(4)--Login系列控件--转载来自车老师
  10. How to write own add-in for SSMS 2012 (Final release version)
  11. Base algorithm
  12. 当使用javac编译源文件时,如何查找import导入的类
  13. lvs_dr
  14. 最快的3x3中值模糊
  15. [LOJ 6185]烷基计数
  16. VSCode搭建Vue项目
  17. Nginx 浏览器缓存
  18. prev_permutation(a+1,a+n+1)
  19. python---str和repr
  20. SQL如何获得本季度第一天、一年的第一天、本月的最后一天

热门文章

  1. 使用.NET 6开发TodoList应用(25)——实现RefreshToken
  2. Termux劣质的入门指南
  3. [STM32F10x] 使用printf函数进行串口调试问题
  4. 【C++】STL容器
  5. 使用 fail2ban 保护 frp 服务
  6. Python中的路径
  7. 浅析Java中的线程池
  8. Python小练习更改版(更改一部分代码,与错误)
  9. Linux下的ssh、scala、spark配置
  10. java继承成员函数特点