1. 前言
随着Spring的日渐臃肿,为了简化配置、开箱即用、快速集成,Spring Boot 横空出世。 目前已经成为 Java 目前最火热的框架了。平常我们用Spring Boot开发web应用。Spring mvc 默认使用tomcat servlet容器, 因为Spring mvc组件集成了spring-boot-starter-tomcat 。但是现在undertow servlet容器的性能非常好。我们可以通过以下方式先排除tomcat:
然后直接替换为undertow:
代码无需更改。这就是组件化后的好处:1.可插拔。2.可定制。3.按需集成。为什么能够做到快速适配?我们试想一个这样一个场景:假如你的汽车轮子上有个螺丝坏了,你要买一个螺丝去自己装。你去店里只要报上你汽车的品牌和位置老板就能准确地知道你要用哪种螺丝。这就是标准已经制定好的好处。如果没有标准,你很容易买到不配套的螺丝,你要不停的试错。这显然不是你想要的。 如果把这种标准潜移默化,那么我们在沟通上就更加快捷方便。有时候你女朋友一个眼神你就知道她想要干什么。所以Spring Boot 有一个“约定大于配置”的规则,让程序组件之间来减少配置,降低复杂性。因此你在开发一个自定义的Spring Boot Starter的时候也最好考虑你的starter如何达到以上的便利性。
2. Spring Boot的一些约定
一个组件的设计一定要有标准和规则。Spring Boot Starter也不例外。我们来看看一些常规的做法。
2.1 命名风格
如果你快有孩子了,出生前你比较急的一定是起个名字。姓名标识着你和你爱人的血统,一定不会起隔壁老王的姓氏,肯定会招来异样的眼光。在maven中,groupId代表着姓氏,artifactId代表着名字。Spring Boot也是有一个命名的建议的。groupI