【杂谈】Starter Template

Spring Boot 项目与普通项目在包管理上的差别
主要差别就是,Spring Boot在包管理上用了starter template,你应该经常看到xxx-starter这类的dependency。实际上就是一个整合包。例如一个spring-boot-web-starter,就包含了所有web应用要用到的基础包。control点进去看就知道了,实际上就是引入了内置的tomcat + JSON处理(jackson)+ spring-web + spring-web-mvc。置于引入Hibernate-Validtor的话,是因为Spring Boot推荐使用JPA,而Hibernate是JPA规范的一种实现。如果你使用的是Mybatis,可以除掉这个包。

 

整合包有什么好处?

我看到的好处有两个,一个是很明显pom文件看起来清爽多了,包数量看起来少了,也不用再像以前那样<!-- web begin--> <!-- web end--> 来标识哪些是web要用到的包了。

另一方面,就是版本的问题了,有些时候我们需要的包都引入了,但是却发现会报莫名其妙的异常,查了半天才发现,是jar包版本不对。整合包的好处就是,它Spring Boot官方整理好的,能保证这些包可以和谐共处的。

可以移除整合包的部分内容吗?

有些人很反感这种全家桶,或者想要替换其中的某个包。这当然可以,比如,你不想用spring-boot-web-starter中的tomcat包,想替换成jetty。那直接exclude掉,然后单独引入jetty就好。注意了,要引入的也是spring boot提供的,不然可能对接不上。

Spring Boot 有提供哪些整合包?

 实际上就是你利用spring initializer构建项目的时候,可以勾选的那些内容。每勾选一个内容,相当于添加一个对应的整合包到对应的项目。

posted @   猫毛·波拿巴  阅读(655)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示