Skip to content

二、Spring Boot开发环境搭建和项目启动

1、jdk 的配置

本课程是使用 IDEA 进行开发,在IDEA 中配置 jdk 的方式很简单,打开File->Project Structure,如下图所:

image-20220504174643647

  1. 选择 SDKs
  2. 在 JDK home path 中选择本地 jdk 的安装目录
  3. 在 Name 中为 jdk 自定义名字

通过以上三步骤,即可导入本地安装的 jdk。如果是使用 STS 或者 eclipse 的朋友,可以通过两步骤添加:

  • window->preference->java->Instralled JRES来添加本地 jdk。
  • window-->preference-->java-->Compiler选择 jre,和 jdk 保持一致。

2、Spring Boot 工程的构建

1、IDEA 快速构建

IDEA 中可以通过File->New->Project来快速构建 Spring Boot 工程。如下,选择 Spring Initializr,在 Project SDK 中选择刚刚我们导入的 jdk,点击 Next,到了项目的配置信息。

  • Group:填企业域名,本次使用com.xue
  • Artifact:项目名称
  • pacgake name:包名
  • Dependencies:可以添加我们项目中所需要的依赖信息,根据实际情况来添加,现在只需要选择 Web 即可。

image-20220504175024245

image-20220504175916649

2、官方构建

第二种方式可以通过官方构建,步骤如下:

  • 访问 http://start.spring.io/。
  • 在页面上输入相应的 Spring Boot 版本、Group 和 Artifact 信息以及项目依赖,然后创建项目。
  • 创建Spring Boot工程
  • 解压后,使用 IDEA 导入该 maven 工程:File->New->Model from Existing Source,然后选择解压后的项目文件夹即可。如果是使用 eclipse 的朋友,可以通过Import->Existing Maven Projects->Next,然后选择解压后的项目文件夹即可。

3、maven配置

创建了 Spring Boot 项目之后,需要进行 maven 配置。打开File->settings,搜索 maven,配置一下本地的 maven 信息。如下:

image-20220504175424298

在 Maven home directory 中选择本地 Maven 的安装路径;在 User settings file 中选择本地 Maven 的配置文件所在路径。在配置文件中,我们配置一下国内阿里的镜像,这样在下载 maven 依赖时,速度很快。

xml
<mirrors>
      <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
      </mirror>
  </mirrors>
 
  <profiles>
         <profile>
              <id>jdk-1.8</id>
              <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
              </activation>
              <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
              </properties>
         </profile>
  </profiles>

如果是使用 eclipse 的朋友,可以通过window-->preference-->Maven-->User Settings来配置,配置方式和上面一致。

4、编码配置

同样地,新建项目后,我们一般都需要配置编码,这点非常重要,很多初学者都会忘记这一步,所以要养成良好的习惯。

IDEA 中,仍然是打开File->settings,搜索 encoding,配置一下本地的编码信息。如下:

image-20220504180223160

如果是使用 eclipse 的朋友,有两个地方需要设置一下编码:

  • window--> perferences-->General-->Workspace,将Text file encoding改成utf-8
  • window-->perferences-->General-->content types,选中Text,将Default encoding填入utf-8

OK,编码设置完成即可启动项目工程了。

3、Spring Boot 项目工程结构

Spring Boot 项目总共有三个模块,如下图所示:

image-20220504180332243

  • src/main/java路径:主要编写业务程序
  • src/main/resources路径:存放静态文件和配置文件
  • src/test/java路径:主要编写测试程序

默认情况下,如上图所示会创建一个启动类 Springboot01Application,该类上面有个@SpringBootApplication注解,该启动类中有个 main 方法,没错,Spring Boot 启动只要运行该 main 方法即可,非常方便。另外,Spring Boot 内部集成了 tomcat,不需要我们人为手动去配置 tomcat,开发者只需要关注具体的业务逻辑即可。

到此为止,Spring Boot 就启动成功了,为了比较清楚的看到效果,我们写一个 Controller 来测试一下,如下:

java
package com.xue.controller;

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

/**
 * @Author: xueqimiao
 * @Date: 2022/5/4 18:04
 */
@RestController
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("/springboot")
    public String helloSpringBoot() {
        return "Hello Spring Boot!";
    }

}

image-20220504181213354

重新运行 main 方法启动项目,在浏览器中输入 http://localhost:8080/hello/springboot,如果看到 “Hello Spring Boot!”,那么恭喜你项目启动成功!Spring Boot 就是这么简单方便!端口号默认是8080,如果想要修改,可以在 application.yml(官方默认的是application.properties,可以把后缀改成yml) 文件中使用 server.port 来人为指定端口,如8081端口:

yaml
server:
  port: 8081

4、POM依赖

xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.xue</groupId>
    <artifactId>springboot-01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-01</name>
    <description>springboot-01</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

<parent>这个标签都知道什么意思, 父亲是吧,这么个标签主要的作用就是用于版本控制。这也就是 引入的 WEB模块 starter的时候不用指定版本号<version>标签的原因,因为在spring-boot-starter-parent中已经指定了,类似于一种继承的关系,父亲已经为你提供了,你只需要选择用不用就行。

为什么spring-boot-starter-parent引入 就能使用Spring MVC 的功能呢?

这确实是个难以理解的问题,为了理解这个问题,我们不妨看一下spring-boot-starter-parent这个启动器都依赖了什么?如下:

xml
<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>2.6.7</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-json</artifactId>
      <version>2.6.7</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.6.7</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.3.19</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.19</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

5、单元测试

java
@SpringBootTest
class Springboot01ApplicationTests {

    @Test
    void contextLoads() {
    }

}

@SpringBootTest :这个注解指定这个类是单元测试的类。 在这个类中能够自动的获取IOC容器中的Bean,比如:

java
@SpringBootTest
class Springboot01ApplicationTests {

    @Autowired
    private HelloController helloController;
    
    @Test
    void contextLoads() {
    }

}