购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

下面通过创建一个“Hello World”程序来说明Spring Boot的使用方法。具体步骤如下。

(1)访问Spring官网,在“spring initializr”页面中创建Maven项目。如图3-1所示,在“Project”选项组中,选择“Maven Project”,在“Language”选项组中,选择“Java”,在“Spring Boot”选项组中选择版本“2.7.0”,填写组名“com.jeff”和项目名称“springboothelloworld”。选择依赖项,因为我们要开发一个Web应用程序,所以需要选择Spring Web组件。最后,单击“GENERATE”按钮,生成项目文件springboothelloworld.zip。

▲图3-1 新建Maven项目时的相关信息

(2)解压缩springboothelloworld.zip文件到指定的目录。

(3)启动Eclipse,选择“File”→“Import”,在弹出的界面中,选择“Maven”→“Existing Maven Projects”,选择springboothelloworld.zip的解压缩文件夹,将程序导入Maven项目,如图3-2所示。

▲图3-2 导入Maven项目

(4)导入springboothelloworld文件夹,生成Maven项目的目录,如图3-3所示。

▲图3-3 项目目录

(5)若导入的pom.xml文件中提示“unknown error”错误,则说明Eclipse和Maven中的插件不兼容。我们可以通过增加maven-jar-plugin.version的配置信息来解决此类问题。首先,打开pom.xml文件,然后,在<maven-jar-plugin.version>标签中添加版本信息。

<?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.7.0</version>
        <relativePath/><!-- lookup parent from repository -->
    </parent>
    <groupId>com.jeff</groupId>
    <artifactId>springboothelloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboothelloworld</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>17</java.version>
        <maven-jar-plugin.version>3.1.1</maven-jar-plugin.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>

spring-boot-starter-parent提供了Spring Boot项目所需的所有Maven默认值。spring- boot-starter-web用于开发Spring Web应用程序或提供RESTful服务。spring-boot-starter-test通过Spring Test、Mockito和JUnit提供单元测试和集成测试功能。

spring-boot-maven-plugin提供了Spring Boot的Maven支持,作用如下。

它收集类路径上的所有JAR并构建一个可运行的JAR包。

它搜索程序中的public static void main()方法,并将该方法标记为可运行类的方法。

它提供了一个内置的依赖项解析器,通过设置版本号以匹配Spring Boot依赖项。

(6)右击项目,在弹出的快捷菜单中依次选择“Maven”→“Update Project”→”Update dependencies”,在弹出的界面中,勾选“Force Update of Snapshots/Releases”复选项,更新项目信息,如图3-4所示。

▲图3-4 更新Maven项目信息

(7)在src/main/java文件夹中,创建一个名为com.jeff.springboothelloworld.controller的包,如图3-5所示。

▲图3-5 创建包

(8)创建一个名为HelloWorldController的控制器类,如图3-6所示。

▲图3-6 创建HelloWorldController类

(9)编写一个简单的RESTful接口方法hello(),该方法返回一个字符串,具体代码如下。

package com.jeff.springboothelloworld.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
    @RequestMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Spring Boot Hello world!";
    }
}

在HelloWorldController类的上方添加@RestController注解。@RestController注解将HelloWorldController类定义为控制器类;通知Spring将结果字符串直接返回给调用者。@RequestMapping注解用于提供路由的信息,并把HTTP请求映射到对应的处理程序。在此处,当/hello的HTTP请求映射到hello()方法时,将执行对应的hello 程序,hello()方法应该返回字符串“Spring Boot Hello world!”。

(10)若要运行程序,则右击并选择“Run As”→“Spring Boot App”,如图3-7所示。若出现图3-8所示的信息,则表示在Spring Boot中嵌入的Tomcat已启动并在localhost的8080端口上运行了。

▲图3-7 运行springboothelloworld程序

▲图3-8 springboothelloworld启动信息

(11)打开浏览器,访问http://localhost:8080/hello,运行结果如图3-9所示。

▲图3-9 springboothelloworld程序运行结果

当浏览器发起上述链接请求时,首先进入dispatcherServlet,然后把它重定向到控制器类HelloWorldController,执行hello()方法。 2CbacEfbvEnIlp3erc5bj873Y7DZTqhzt6OPtlJMZqp1FEWkxHPIY8kJwNE+LlnI

点击中间区域
呼出菜单
上一章
目录
下一章
×