Spring Boot趣味实战课-第一篇(Srping Boot入门)

一、使用Spring Boot创建HelloWorld项目

当我们想要创建Spring Boot项目时有两种方式供我们选择。第一个呢就是使用开发工具创建。例如IDEA或者Spring Boot官方提供的工具Spring Tools等等。还有一种创建Spring Boot项目的方式。则是使用官方的在线网址进行创建,也就是Spring Initializr。这两种本质上是没有任何区别的,操作步骤也是一样的。实际上开发工具也是调用官方在线网址实现的。


下面我们看一下如何使用IDEA创建Spring Boot项目,这里呢我使用的IDEA工具。具体操作如下图所示:

 Spring Boot趣味实战课-第一篇(Srping Boot入门)

创建Spring Boot的项目和创建Spring不同,在上图中我们不能选择Maven创建项目,而是选择Spring Boot创建。
  
在Spring Boot选项中我们看到默认使用了https://start.spring.io这个域名地址。这个域名是干什么的呢?这个就是我们上面所说的Spring Boot官方为了我们提供的在线网址,如果我们不想使用IDEA中的Spring Initializr,那我们可以也直接访问https://start.spring.io这个域名地址,来创建Spring Boot的项目。

Spring Boot趣味实战课-第一篇(Srping Boot入门)

因为上图中的配置和IDEA中的Spring Initializr配置基本一样,所以上图中的创建方式,就不做详细介绍了。当然我们也可以选择其它的地址进行创建Spring Boot的项目,例如现在比较火的Spring Cloud Alibaba。它提供了下面的地址来方便我们进行创建Spring Boot项目。
  
https://start.aliyun.com
  
Spring Boot趣味实战课-第一篇(Srping Boot入门)

同理我们也可以自行开发一个符合自己公司规范的Spring Initializr来满足工作中的需要。但这一部分内容呢,我们在后续的文章中在进行介绍。

下面我们继续回到使用IDEA创建项目。由于选项比较多,下面我们详细介绍一下:

选项 描述
Group 同Maven中的Group一样,也就是项目唯一标识
Artifact 同Maven中的Artifact一样,通常为项目名
Type 项目的Maven类型,我们默认选择就可以
Language 项目的开发语言,那结果当然选择Java
Packaging 打包类型jar或者war,因为SpringBoot可以支持这两种方式启动,所以,这两种选择哪个都可以
Java Version Java的版本号,推荐使用1.8版本
Version 项目的版本号
Name 项目名,推荐和Artifact一致
Description 项目描述   
Package 项目包的名字   

上面的配置呢虽然比较多,但是如果我们了解Maven的就会知道,上面的内容实际上就是Maven项目的相关配置。所以这里我们就不在过多介绍了。有不了解Maven使用的可以查看本站的另外的一个系列有关Maven的分享。

https://ma-zhe.cn/collection/maven

但上面的配置有一点是要特别注意,也就是Java Version的版本。因为在最新发布的Spring Boot项目,最新的版本为3.x,但是呢有一个前置要求,也就是必须要求JDK17以上,但是在我们实际的项目开发中,还是有大部分项目采用的还是JDK8,虽然大体上在使用中没有太大的区别,但是还是有一些细节是不同的,所以为了满足现有项目的需求,码者在本系列分享中,一律采用Spring Boot 2.x项目的进行分享,因为Spring Boot 2.x对JDK最低的要求为JDK8。

当我们配置完上面参数后,发现我们没办法选择JDK8了。这是因为Spring Initializr已经不在支持创建Spring Boot 2.x的项目了,因为它停止了维护。我们当然可以直接先使用JDK17然后在项目创建完成后在进行修改。除此之外呢,我们还有一个方式,那就是使用我们上面介绍过的。阿里巴巴的项目创建的地址,因为它是支持我们创建Spring Boot 2.x的项目的。我们只需要把上面的URL地址修改为https://start.aliyun.com即可。

Spring Boot趣味实战课-第一篇(Srping Boot入门)

下面我们下一步继续,我们可以在这个页面中选择具体的Spring Boot的版本,以及选择我们项目的依赖组建。因为我们要开发一个helloworld的接口,所以我们需要创建的是一个Web项目,因为要运行。所以,我们还要添加一下Web相关的依赖,那这一点呢就和Maven创建Spring项目不同了,我们只需要选择,一个web的依赖就可以了,SpringBoot会自动把这个web相关的依赖都下载好,这也就是SrpingBoot的优势之一,比较方便。当然我们实际的项目开发中,还是需要很多其它的项目依赖的,这里我们先不用着急,暂时只添加Web依赖就可以了,如果需要其它的依赖,我们还是可以修改的。好的我们继续下面操作:

Spring Boot趣味实战课-第一篇(Srping Boot入门)

这一步我们只要选择完成则可以了。这样我们的SpingBoot项目就创建好了,下图就是项目目录:

Spring Boot趣味实战课-第一篇(Srping Boot入门)

这样我们的项目就创建完了,虽然有点繁琐,但实际上还是比较简单的。并且呢上面的项目源码中生成了很多阿里巴巴的测试类,我们可以直接删除,并不会影响项目的实际运行。下面我们看一下,如何启动Spring Boot项目。

启动Spring Boot

Spring Boot项目和Spring项目不同,我们不需要配置Tomcat来启动Spring Boot项目,我们直接点击启动类,即可启动SrpingBoot项目。下面我们尝试启动一下,因为启动类就是一个main方法,所以我们只要直接执行就可以了。因为SrpingBoot项目的默认端口为8080,所以我们启动后可以直接访问8080端口,来验证Spring Boot是否启动成功。

Spring Boot趣味实战课-第一篇(Srping Boot入门)

上图就是我们访问8080端口后的结果。虽然返回的结果报错,但这恰恰说明了我们的项目启动成功了,否则就会报404错误。那为什么会报上面的错误呢?这是因为我们没有编写Controller,下面我们写一个简单的Controller也就是helloworld来再次访问上面的地址在看一下上面的问题是否还存在。下面为controller代码。

package cn.mazhe;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/mazhe")
public class HelloWorldController {

    @RequestMapping("/helloworld")
    public String helloWorld() {
        return "hello world";
    }
}

下面我们访问一下上面的接口地址,看一下效果。

Spring Boot趣味实战课-第一篇(Srping Boot入门)

我们看成功的返回了我们接口中内容,是不是很简单,这就是Spring Boot项目的便利之处,因为我们什么都没有进行配置,直接开始了代码编写。但这是怎么做到的呢?这也就是Spring Boot项目的一个主要思想,约定大于配置。当我们项目中什么都不进行配置时,Spring Boot默认会为我们进行配置,例如上面的默认的项目端口8080等等,这也就是Spring Boot项目流行的主要原因之一。

那这时有码友会想,那我们如何对默认约束进行修改呢。在Spring Boot项目对配置进行修改非常的简单。因为项目中帮我们自动生成的了项目的配置文件也就是application.properties文件。下面我们看一下如何进行默认配置的修改。

二、如何对默认约定进行修改?

在我们创建完Spring Boot项目后我们在项目的resources目录中找到application.properties文件,这个文件就是让我们对默认约定进行修改的配置文件。也就是说,在这个文件中按照Spring Boot为我们提供的参数名,就可以直接修改Spring Boot项目的默认配置。下面我们尝试修改Spring Boot项目的默认端口。具体修改如下:

在application.properties文件中添加下面的参数,然后启动项目即可。

server.port=8888

并且如果我们使用IDEA开发工具时就会发现,当我们在application.properties文件中输入参数时,IDEA就会自动为我们提供相关参数提示,这样方便我们修改。

当我们启动完项目访问之前的接口时发现已经找不到服务了。

Spring Boot趣味实战课-第一篇(Srping Boot入门)

而如果我们用访问8888端口访问项目,则发现服务可以正常访问。这就说明,我们已经成功将Spring Boot项目的默认端口修改为8888端口了。

Spring Boot趣味实战课-第一篇(Srping Boot入门)

虽然上面的方式已经成功的修改了Spring Boot项目的默认参数,但在实际的开发中,并不推荐使用application.properties文件的方式修改,因为在Spring Boot项目中有更推荐的方式。也就是使用YAML文件的方式进行配置。下面我们看一下如果使用YAML文件的方式进行项目默认端口的修改。


使用YAML文件的方式修改默认参数,也比较简单,也就是把application.properties文件修改为application.yml文件即可。唯一不同的是yml文件有自己独特的语法,和properties文件不同,可以省略很多参数,看起来比较简洁。

下面我们尝试用yml文件的方式,将Spring Boot的端口修改为9999端口。具体配置如下:

server:
  port: 9999

那上面的配置呢就是YAML文件的语法,采用的是健值对的方式进行配置,并且冒号后面需要有空格这一点要注意。由于这个比较简单,我们就在进行演示了。下面我们介绍一下如何使用YAML文件对项目其它信息进行修改,因为这一部分内容比较简单,我们了解即可。

  • 修改项目名称
spring:
  application:
    name: mazhe-springboot-helloworld
  • 修改项目请求路径
server:
  servlet:
    context-path: /mazhe 

当然在Spring Boot项目中还有很多配置可以进行修改,我们在后续的内容中在做详细的介绍。下面我们思考一个问题,为什么在Spring Boot项目中,我们只需要引入一个Web就可以实现上面的功能呢?那答案就是Starters。下面我们介绍一下什么是Starters。

三、Spring Boot中的Starters是个什么东东?

在Spring Boot项目中,Starters其实就是将一组具有相关依赖的Jar包做了一个整合。那相关依赖我们在了解Maven时知道,组件与组件之间是有依赖的,例如一般性依赖、传递性依赖等。Starters的目的就是把一组相同功能的依赖整合起来,方便开发者直接使用,这样就不需要我们手动解决项目的依赖问题了,大大提高了开发效率。

因为在没有Starters之前,我们在处理依赖时,通常会遇到2个比较麻烦的问题,一个是如何找到相关的依赖,另一个问题是版本兼容的问题,因为即使我们找对了依赖,也可能会因为版本问题导致不兼容,进而导致项目失败。但如果使用Starters就不会出现这样的问题了。因为Spring Boot提供的Starters都是经过官方测试过的,所以不会出现版本不兼容等问题,第二个问题也同样解决了,我们查找项目依赖所浪费的时间。其次呢。
Spring Boot还将依赖按照不同的功能进行了分组,我们可以按照自己的需求进行选择。例如想要开发Web项目的,就选择starter-web。想要发送邮件,就选择starter-mail等等。

下面我们介绍一下比较常见的Starters,以及它们的作用。

Starters 作用
spring-boot-starter-web 创建Web项目的
spring-boot-starter-test 用于编写编写单元测试的
spring-boot-starter-mail 发送邮件的
spring-boot-starter-data-jdbc 数据驱动的

以上内容只是我们比较常用的Starters,下面是官方提供的所有的Starters,如果我们在日常的开发中遇到了某些开发需求,可以直接引用即可。

https://docs.spring.io/spring-boot/reference/using/build-systems.html#using.build-systems.starters

当然我们也可以开发自己的Starters,由于本篇是入门篇,我们先了解Starters的作用即可,在后续的分享中我们在详细的介绍如何开发自己的Starters。


那以上内容就是本篇的全部内容,感谢码友的支持,我们下篇见。

给TA打赏
共{{data.count}}人
人已打赏
Spring Boot

Spring Boot趣味实战课-前篇(本书简介)

2024-11-4 6:54:13

Maven

Maven实战-第二十二篇(部署组件到Nexus)

2023-8-24 20:16:40