• SpringBoot_原理-自定义starter


     

       一般自动配置类都是放在xxx-starter-autoconfigurer依赖下。

     

     1.创建一个空项目,项目有两个模块:starter模块的maven项目(引入configuer),configuer模块的springboot项目(由于configuer模块是被依赖来使用的,因此不需要这个主程序类,可以删除掉)

      》starter创建

     

       》configuer创建

     2.在starter的pom.xml引入configuer模块

     3.在configuer模块引入spring-boot-start(这个是所有starter都得引入的基础starter,在这里引入也行,在starter的pom.xml直接引入也可以)

     4.编写一个properties类

     5.编写一个对外服务的类

     6.编写自动配置类

     7.将自动配置类写到指定路径下的文件中,用于被加载到ioc容器中

     8.安装这两个模块到仓库中,便于其他项目使用

    9.可以创建一个springboot工程测试以下,在pom.xml引入刚才写的starter

    10.测试

     

    总结:写一个starter时,里面最主要有三类角色:

      1.xxxAutoConfiguration:自动配置类,它的作用就是加载用户或系统所需要的组件,并加载和导入相关的xxxProperties到ioc容器中,方便它导入的组件来获取xxxProperties的属性。

      2.xxxxProperties:提供xxxAutoConfiguration导入的组件中所需要的属性值,xxxxProperties的属性值真正来源是在配置文件中的。

      3.xxxAutoConfiguration导入的组件:组件被加到ioc容器中,属性值的获取依赖xxxProperties并且他们的属性值很多是在加入到容器前就已经赋值的了;我们在使用组件的时候直接利用@Autowired等注解直接获取就行,并不需要关注它如何导入ioc,因为这部分工作并不由我们来做。只要自动配置类启动了,这些组件也就会在ioc中了。

  • 相关阅读:
    codeforces 869E. The Untended Antiquity(二维树状数组,随机化)
    bzoj 3083: 遥远的国度(树上换根操作,树剖+询问整个子树)
    hdu 5534 Partial Tree(dp+降唯,好题)
    AtCoder Regular Contest 075 E
    hihocoder 1387 A Research on "The Hundred Family Surnames"(树,lca,求同一颜色的直径)
    hdu 5458 Stability(生成树,树链剖分,好题)
    推荐一套个人ui组件库
    回望2019,期盼2020
    如何从产品的角度对待自己的博客
    致一名迷茫的我
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/13719705.html
Copyright © 2020-2023  润新知