开始使用Spring Boot

hanbin 2021-01-04 PM 14℃ 0条

本篇文章基于官方文档的Using Spring Boot章节。

构建方式

在文档的开始,下面一段话描述了官方想告诉给我们的东西。

This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly special about Spring Boot (it is just another library that you can consume), there are a few recommendations that, when followed, make your development process a little easier.
大意就是本部分更细节地讲述如何使用Spring Boot。包括了如何构建项目,自动装配(其实auto-configuration不翻译更好),以及如何运行开发的应用。再者,官方在这个部分提供了一些最佳实践,官方大佬觉得,如果我们遵守了这些最佳实践,我们的开发过程会更happy。

官方大佬推荐我们使用Maven或者Gradle构建,大部分Java开发人员对Maven都是熟悉的,所以我们本系列文章只关注Maven,Gradle大家可以自己看,也许后面会有单独的文章专门讲解Gradle,但是这个不必期待。
特别强调,官方提供了Ant方式构建系统的支持,但是不推荐使用这个。(其实我也不会!)
Spring Boot 建议我们使用Maven或者Gradle, 有很大一部分原因是因为包依赖版本的复杂性。如果有过前些年非Maven构建的那种Java Web项目开发经验,就应该了解依赖包的冲突问题是个老大难,当时网络上充斥了大量的如何搭建SSH框架,如何搭建SSM框架的文章。Spring Boot通过Maven和Gradle的依赖关系管理,在版本发布的时候就在Parent里面指定了相关依赖的版本号。所以我们在开发过程中引入某个Spring Boot已经指定版本号的包的时候,只需要指定artifactId和groupId即可,version会从parent继承下来。当然,你也可以自定义升级某个版本号,谁让现在动不动就各种CVE漏洞呢!

Each release of Spring Boot is associated with a base version of the Spring Framework. We highly recommend that you not specify its version.

官方大佬在文档里面强调了很多次,你可以自己改构建方式,改依赖版本... 但是,尽量别改!后面就不啰嗦这些了。总之,尽可能用官方提供的最佳实践就好。
我们在https://blog.hanbinit.com.cn/archives/127里面讲了如何使用Maven方式创建一个Spring Boot项目。所以就不赘述了。

Starter

Spring Boot的Starter是一个很优秀的东西。Starter为我们实现各种功能提供了一站式的接入方式。比如我们要在项目中使用JPA,那么直接引入spring-boot-starter-data-jpa就可以了。spring-boot-starter-data-jpa包括了引入jpa需要依赖的其他第三方包,以及要开启JPA的相关默认配置。Starter可以让我们对某个特性的需求做到开箱即用。
随着Spring Boot的流行,Starter越来越多了。官方的Starter命名都是spring-boot-starter-*这样的格式。*一般根据特性来指定。也有一些第三方Starter,但是第三方Starter一般命名都是thirdpartproject-spring-boot-starter,第三方的Starter不以spring-boot-starter开头。Starter是很好创建的,官方提供了指导:Creating Your Own Starter. 有兴趣的可以看看,如果不想看官方的,可以看看这篇:如何创建Starter
官方将自己的Starter分了下类: Starter 这里有三个Table. 占篇幅比较大,大家点前面链接进去看就好。
三大类分别是引入功能特性的Starter、为生产监控准备的Starter、以及可以自定义某种技术方案的Starter。
功能特性的Starter很好理解,比如前面提到的spring-boot-starter-data-jpa。为生产监控准备的Starter只有一个,就是spring-boot-starter-actuator、最后还有一类,这类主要是为了切换项目中的某些技术方案,比如默认容器是Tomcat,但是咱就喜欢jetty,那就引入spring-boot-starter-jetty。从spring-boot-starter-web中排除spring-boot-starter-tomcat

非特殊说明,本博所有文章均为博主原创。

上一篇 也来聊下Spring Boot开启SSL
下一篇 没有了

评论啦~