SpringBoot教程&笔记|Demo01-构建一个简单的Web应用程

  heardfate

使用Spring Boot构建应用程序

本指南提供了Spring Boot如何帮助您加速和促进应用程序开发的示例。当您阅读更多Spring入门指南时,您将看到更多用于Spring Boot的用例。它旨在让您快速了解Spring Boot。如果您想创建自己的基于Spring Boot的项目,请访问Spring Initializr,填写项目详细信息,选择您的选项,然后您可以下载Maven构建文件或捆绑项目作为zip文件。

SpringBoot在建立生产中的独立程序上非常简便、只需要一些简便的配置就能运行起来。
大致有如下特点:

  1. 创建独立的Spring applications
  2. 能够使用内嵌的Tomcat, Jetty or Undertow,不需要部署war
  3. 提供starter pom来简化maven配置
  4. 自动配置Spring
  5. 提供一些生产环境的特性,比如metrics, health checks and externalized configuration
  6. 绝对没有代码生成和XML配置要求

你需要什么

*大约15分钟
*最喜欢的文本编辑器或IDE
*JDK 1.8或更高版本
*Maven 3.2+

IDEA构建步骤

Open Idea->new Project->Spring Initializr->Group、Artifact、Name->Select web->Finish
填写对应信息就可以了
本示例使用了SpringBoot 2.1.0 RC1JAVA11版本
IDEA构建步骤
IDEA构建步骤
IDEA构建步骤
IDEA构建步骤

目录结构说明

目录结构说明

  • pom文件为MAVEN配置文件
  • resouces 资源文件
    • static 静态资源
    • templates 模板资源
    • application.properties 配置文件
  • Demo01Application 程序的入口

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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.heardfate.springboot</groupId>
 <artifactId>demo01</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>
 <name>demo01</name>
 <description>Demo project for Spring Boot</description>
 <parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.1.0.RC1</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>11</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>
 <repositories>
 <repository>
 <id>spring-snapshots</id>
 <name>Spring Snapshots</name>
 <url>https://repo.spring.io/snapshot</url>
 <snapshots>
 <enabled>true</enabled>
 </snapshots>
 </repository>
 <repository>
 <id>spring-milestones</id>
 <name>Spring Milestones</name>
 <url>https://repo.spring.io/milestone</url>
 <snapshots>
 <enabled>false</enabled>
 </snapshots>
 </repository>
 </repositories>
 <pluginRepositories>
 <pluginRepository>
 <id>spring-snapshots</id>
 <name>Spring Snapshots</name>
 <url>https://repo.spring.io/snapshot</url>
 <snapshots>
 <enabled>true</enabled>
 </snapshots>
 </pluginRepository>
 <pluginRepository>
 <id>spring-milestones</id>
 <name>Spring Milestones</name>
 <url>https://repo.spring.io/milestone</url>
 <snapshots>
 <enabled>false</enabled>
 </snapshots>
 </pluginRepository>
 </pluginRepositories>
</project>

创建一个简单的Web应用程序

现在,您可以为简单的Web应用程序创建Web控制器。
src/main/java/com/heardfate/springboot/demo/controller/HelloController.java

package com.heardfate.springboot.demo.controller;

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

/**
 * @since: 2018/10/18
 * @author: Mr.HeardFate
 */
@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Greetings from Spring Boot!";
  }

}

该类被标记为@RestController,这意味着Spring MVC可以使用它来处理Web请求。@RequestMapping映射’/’到index()方法。从浏览器调用或在命令行上使用curl时,该方法返回纯文本。这是因为@RestController组合@Controller和@ResponseBody两个注释会导致Web请求返回数据而不是视图。

Demo01Application.java构建项目的时候系统自动创建的

package com.heardfate.springboot.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Demo01Application {

    public static void main(String[] args) {
        SpringApplication.run(Demo01Application.class, args);
  }
}

@SpringBootApplication 是一个组合注释,添加了以下所有内容:
* @Configuration 是一个类级注释,指示对象是一个bean定义的源。
* @EnableAutoConfiguration 告诉Spring Boot开始根据类路径设置,其他bean和各种属性设置添加bean。
* 通常你会添加@EnableWebMvc一个Spring MVC应用程序,但Spring Boot会在类路径上看到spring-webmvc时自动添加它。这会将应用程序标记为Web应用程序并激活关键行为,例如设置DispatcherServlet。
* @ComponentScan告诉Spring在包中寻找其他组件,配置和服务hello,允许它找到控制器。
该main()方法使用Spring Boot的SpringApplication.run()方法来启动应用程序。您是否注意到没有一行XML,也没有web.xml文件?此Web应用程序是100%纯Java,您无需处理配置任何管道或基础结构。

创建应用程序
创建应用程序

运行该应用程序

Demo01Application 右击Run
运行应用程序

查看是否运行成功

命令行下输入:$ curl localhost:8080
可以看到返回了Greetings from Spring Boot!
查看应用程序