使用Spring Boot创建Web应用程序的示例代码

时间:2022-09-10 09:05:46

在这篇文章中,我们将探讨使用spring boot创建web应用程序的细节。 我们将探索spring boot如何帮助你加速应用程序开发。

我们将使用spring boot构建一个简单的web应用程序,并为其添加一些有用的服务。

1. 介绍

启动一个新项目的主要挑战之一是该项目的初始设置。 我们需要对不同的目录结构进行调用,并且需要确保我们遵循所有行业标准。对于使用spring boot创建web应用程序,我们需要以下工具:

  1. 我们自己喜欢的ide (我将使用intellij)
  2. maven
  3. jdk 1.8+

2. 创建项目结构

有多种方式可以使用spring boot initializr为你生成项目结构:

  1. 使用spring initializr web界面。
  2. 使用spring boot cli工具。
  3. 使用你的ide

为了简化这篇文章,我们使用spring initializer的网页界面来生成项目结构。

用你的浏览器访问spring initializr web界面,你将看到一个向导来开始你的配置。

使用Spring Boot创建Web应用程序的示例代码

你需要填写网页界面中的一些信息才能开始。

  1. 你想要生成什么类型的项目(maven或gradle)
  2. 你选择什么语言(除了java,你还可以选择kotlin或groovy)?
  3. spring boot版本
  4. 标准的项目组和工件细节。
  5. 依赖

依赖是web界面中的一个有趣功能,根据你选择的依赖,web界面会自动在生成的pom.xml文件中添加spring boot starter依赖。如果你希望对生成的项目结构进行更多控制,或者不确定所有你想要添加到项目中的依赖,请单击“switch to the full version”按钮。

在本文中,我们将使用web和thymeleaf(用于用户界面)两个starter。

3. 项目结构

spring boot不需要任何特定的代码布局或结构。我们始终可以遵循spring boot团队提出的一些最佳实践,但最终结构将由你的项目需求驱动。

下图是我们例子应用的项目结构:

使用Spring Boot创建Web应用程序的示例代码

4. pom.xml

我们来看看pom.xml文件,详细地了解spring boot配置。 我将仅涵盖pom.xml中与spring boot相关的更改。 以下是我们示例项目中的pom.xml文件。 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelversion>4.0.0</modelversion>
  <groupid>com.javadevjournal</groupid>
  <artifactid>javadevspringboot</artifactid>
  <version>0.0.1-snapshot</version>
  <packaging>war</packaging>
  <name>javadevspringboot</name>
  <description>java dev journal project for spring boot</description>
  <parent>
   <groupid>org.springframework.boot</groupid>
   <artifactid>spring-boot-starter-parent</artifactid>
   <version>1.5.4.release</version>
   <relativepath/> <!-- lookup parent from repository -->
  </parent>
  <properties>
   <project.build.sourceencoding>utf-8</project.build.sourceencoding>
   <project.reporting.outputencoding>utf-8</project.reporting.outputencoding>
   <java.version>1.8</java.version>
  </properties>
  <dependencies>
   <dependency>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-thymeleaf</artifactid>
   </dependency>
   <dependency>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-web</artifactid>
   </dependency>
   <dependency>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-tomcat</artifactid>
     <scope>provided</scope>
   </dependency>
   <dependency>
     <groupid>org.springframework.boot</groupid>
     <artifactid>spring-boot-starter-test</artifactid>
     <scope>test</scope>
   </dependency>
  </dependencies>
</project>

spring boot的主要特性之一是“starter”,它们是在我们的类路径中添加所需依赖项(jar包)的简单方法。 当使用spring boot时,我们不必在我们的类路径中添加jar包或依赖项(如果starter不可用,你可能必须将这些依赖项添加到pom.xml中,或者可以创建自己的自定义starter)。 我们只需要在我们的pom.xml文件中添加正确的“starter”,spring boot将确保自动添加这些依赖。

5. 主应用

如下所示是我们的spring boot应用程序主类,它也是一个spring配置类。 注解@springbootapplication启用spring上下文以及spring boot的所有启动魔法。 

?
1
2
3
4
5
6
@springbootapplication
public class webapplication extends webmvcconfigureradapter {
  public static void main(string[] args) {
   springapplication.run(webapplication.class, args);
  }
}

5. 1 @springbootapplication 注解

@springbootapplication相当于使用@configuration,@enableautoconfiguration和@componentscan以及它们的默认值。如果要开始项目,建议使用这个注解。

在主类中使用@springbootapplication相当于同时使用以下3个注解:

  1. @configuration作为bean定义的来源。
  2. @enableautoconfiguration,它为spring boot提供了如何配置应用程序。
  3. @componentscan自动获取所有spring组件,包括@configuration类。

5. 2 主方法

我们主类的另一个有趣特点是主方法。 这是遵循标准java工作流程的标准方法。 我们的主类将把控制权交给spring boot springapplication类。

springapplication类的run方法将用于引导一个应用程序。

6. welcome controller

我们设置的最后一部分,我们将创建一个welcome controller,负责通过返回view的名称(在本例中为“welcome”)处理/greeting的get请求。 视图负责呈现html内容。 

?
1
2
3
4
5
6
7
8
9
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
@controller
public class welcomecontroller {
  @requestmapping("/welcome")
  public string welcome() {
    return "welcome";
  }
}

这是一个非常简单的控制器,但在我们的设置中涵盖了很多要点。

  1. @controller注解表示被注解的类是“控制器”(例如web controller)。
  2. @requestmapping注解可确保将对/welcome的http请求映射到welcome()方法。
  3. 我们没有为@requestmapping注解指定任何http方法,因此默认情况下,映射所有http方法。
  4. 由于我们使用thymeleaf进行视图技术并从welcome()方法返回“welcome”,因此thymeleaf会解析模板welcome.html并生成输出。

6. 1 ui template

如下我们简单的thymeleaf html模板。

?
1
2
3
4
5
6
7
8
9
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>getting started: serving web content</title>
</head>
<body>
hello and welcome to our web application
</body>
</html>

当使用thymeleaf作为我们的模板引擎时,spring boot将通过在视图名称前后加上前缀和后缀(配置参数分别是:spring.thymeleaf.prefix和spring.thymeleaf.suffix,它们的默认的值是:'classpath:/templates/‘和'html')。

7. 运行程序

我们完成了我们简单的web应用程序,现在是时候运行我们的应用程序了。 尽管可以将此服务作为传统war文件打包以部署到外部应用程序服务器上,但更简单的方法是创建独立应用程序。 要从ide运行我们的应用程序,我们需要将我们的web应用程序作为独立的java应用程序运行。

  1. 如果使用maven,我们可以使用mvn spring-boot:run命令运行应用程序。
  2. 我们可以使用mvn clean package命令构建jar包,并使用java -jar target/demo-app-0.1.0.jar运行这个jar包。

现在,该网站已启动并正在运行,请访问 http://localhost:8080/welcome ,如果一切正常,则应在web浏览器中输出以下内容。

hello and welcome to our web application

8. 总结

在这篇文章中,我们学习了使用spring boot创建web应用程序。 spring boot具有许多功能,可以更快,更轻松地创建和运行web应用程序。

原文链接: https://www.javadevjournal.com/spring/creating-a-web-application-with-spring-boot/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://szpzs.oschina.io/2018/05/25/creating-a-web-application-with-spring-boot/