手写自定义SpringBoot-Starter,感受框架的魅力和原理

手写自定义SpringBoot-Starter,感受框架的魅力和原理,Springboot的自动配置原理,面试中经常问到,一直看也记不住,不如手写一个starter,加深一下记忆。看了之后发现大部分的starter都是这个原理,实践才会记忆深刻。核心思想:约定大于配置。,我们直接看看官网的starter是怎么设计的,仿照这写一个就行了!,我们Ctrl点击<artifactId>spring-boot-starter-web</artifactId>,进入内部pom,我们发现里面有个。,在此Ctrl点击<artifactId>spring-boot-starter</artifactId>进入starter内部pom:我们发现之后干活的就是这个包依赖:,图片,我们现在创建两个项目即可:,小编看到官方这么写的提醒,大家可以按照官网的进行起名称,不要学小编哈!!,图片,输入总的项目名称:,图片,在空白项目里新建两个,这里可以分开单独建立,这里小编跟着雷神一样了,就不单独建立项目了!,图片,图片,包名和名称:,图片,图片,这里把没有用的都删除了!!可以不删。,图片,就是上面建立项目的设置的。,图片,还是把没用的东西删除了,剩余如下图:,图片,首先删除了自动启动类,咱们用不到,在spring-boot-autoconfigure项目中新建一个bean,此时不需要让这个bean在容器中,我们写一个自己配置,让他自动加入到容器中。
这就是自动配置的思想。,这里为了获取配置文件中的属性值,springboot自动配置源码里大部分都是,这样实现在一个配置文件中书写,其他的可以按照开头获取到属性和值!,主要就是condition下的几个注解,来完成bean是否加入到容器中:
常用的:,图片,我们看到源码里自动配置,就是从这个文件获取加载,所以我们模仿这新建一个,这样就可以扫描加入容器中!,图片,如果是springboot2.7以上就是:文件夹名称:META-INF.spring文件名称:org.springframework.boot.autoconfigure.AutoConfiguration.imports。,图片,里面直接写全类名即可!,先把spring-boot-autoconfigure​打包到本地库,在打包spring-boot-starter,顺序一定要有,不然找不到前者的包!,图片,我们那一个新项目进行测试,新项目小编就不带大家建了!,图片,成功访问,不过中文是有乱码的,小编找不到解决方法,有懂的还请留言告知!!
主流程通了就行,慢慢理解了自动配置的魅力!
总流程应该就是这样的:,引入starter — xxxAutoConfiguration — 容器中放入组件 —- 绑定xxxProperties —- 配置项。,图片,中文是乱码,可能是servlet没有吧,有懂的可以留言告诉小编方案,谢谢大家!,图片,一看会就,一动手就废!大家还是要做自己实操,不要眼高手低,这样才会有收获,根本就是约定大于配置+SPI发现机制!还有就是一些经常出现在源码里的注解,大家记住就可以自己写starter了!

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/16669.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月5日 上午12:00
下一篇 2023年3月7日 下午10:34