使用Spring Boot开发 “Hello World” Web应用

简介:

环境准备

由于现在很多IDE都支持Maven, 所以我们将使用Maven构建该工程;

开始之前,需要先安装Java和Maven:

本工程将基于Spring Boot 1.4.3.RELEASE开发,推荐的Java版本是Java 7+,maven版本是3.2+,可使用如下命令检查是否符合要求:

创建POM

由于使用Maven构建,所以我们首先需要创建一个pom.xml文件,用于构建本工程,打开你最喜欢的编辑器(如Notepad++),添加如下内容:

复制代码
<?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.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.3.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->

</project>
复制代码

添加依赖

Spring Boot提供了一系列的“启动器”,使得添加依赖变得非常简单;

由于本工程是一个Web工程,所以我们选择添加spring-boot-starter-web“启动器”依赖;

添加spring-boot-starter-web依赖

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

为了更加直观的看到spring-boot-starter-web引入的依赖,我们可以使用mvn dependency:tree命令查看工程的依赖树,如下是添加前后的区别:

前(注意观察,虽然继承了spring-boot-starter-parent,但是并没有引入任何依赖):

后:

可以发现,在添加前,项目没有任何依赖,添加完spring-boot-starter-web依赖后,Tomcat、Jackson、Spring Boot等依赖也都自动添加了进来。

最后,有一点值得注意的是,为了简便,我们这个工程是继承spring-boot-starter-parent工程,spring-boot-starter-parent帮我们预先定义了很多插件管理配置、编译级别(Java 6)、编码(utf-8)等,不过并没有添加任何依赖,有兴趣的可以查看spring-boot-starter-parent工程的pom.xml文件,链接如下:

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-starters/spring-boot-starter-parent/pom.xml

编写代码

为了完成这个应用,我们需要创建一个简单的Java文件,如下,Maven默认情况下会去src/main/java目录编译java文件,所以我们要先创建这个目录结构,然后添加src/main/java/Example.java文件:

复制代码
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}
复制代码

注意观察以上代码,我们使用了@RestController和@RequestMapping两个Spring MVC的注解,

@RestController用于表明该类是一个Controller,且返回的内容直接写入到响应body里;

@RequestMapping用于url路由映射,在这里表面路径为“/”的Http请求将会映射到home()这个方法来处理;

另外,还使用了@EnableAutoConfiguration注解,添加这个注解后,Spring Boot会基于你添加的依赖去自动配置Spring,由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以,Spring Boot自动配置会假定你正在开发一个web应用程序,并依此自动添加相关Spring配置。

最后,要关注的是main方法,跟普通的main方法没什么区别,只有一句话,调用SpringApplication的run方法启动应用。

使用maven命令运行应用

由于继承了spring-boot-starter-parent工程,所以我们可以直接使用mvn spring-boot:run命令来运行程序,如下所示:

复制代码
$ mvn spring-boot:run

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.4.3.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)
复制代码

启动后,在浏览器输入http://localhost:8080/ 即可以看到Controller中home方法返回的结果:

另外使用ctrl-c,可以关闭应用。

创建一个可执行的jar包

很简单,添加一个maven插件,如下代码;

复制代码
<build>
    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
复制代码

 然后运行mvn package命令即可(注意,spring-boot-starter-parent的POM已经帮我们做了配置,绑定了repackage goal, 如果没使用继承parent POM,我们需要做更多配置,详情参考plugin documentation):

打完包后,我们可以在target目录下找到helloworld-0.0.1-SNAPSHOT.jar包。

如果要运行程序的话,也很简便,输入 java -jar target/helloworld-0.0.1-SNAPSHOT.jar 命令即可启动应用,如下所示:

复制代码
$ java -jar target/helloworld-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.4.3.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)
复制代码

同样,启动后,在浏览器输入http://localhost:8080/ 即可以看到Controller中home方法返回的结果。

IDE推荐

最后,虽然本例子未使用任何IDE,主要是因为比较简单;如果开发复杂的应用,还是强烈推荐使用IDE,如Spring Tool Suite,我使用的是sts-3.8.3.RELEASE版本。


本文转自风一样的码农博客园博客,原文链接:http://www.cnblogs.com/chenpi/p/6293032.html,如需转载请自行联系原作者

相关文章
|
22天前
|
XML 开发框架 Java
Spring轻量级开发框架(二)
Spring轻量级开发框架
44 0
|
1月前
|
开发框架 安全 Java
Spring 框架:企业级应用开发的强大工具
在当今数字化时代,企业级应用开发的需求日益增长。为了满足这一需求,开发者们需要一款功能强大、易于使用的开发框架。Spring 框架作为 Java 领域的领先者,为企业级应用开发提供了全面的解决方案。本文将深入探讨 Spring 框架的各个方面,包括其历史、核心模块、优势以及应用场景。
23 0
|
1月前
|
监控 Java 数据处理
【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解
【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解
|
20天前
|
安全 Java 数据安全/隐私保护
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
【深入浅出Spring原理及实战】「EL表达式开发系列」深入解析SpringEL表达式理论详解与实际应用
43 1
|
20天前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
42 0
|
15天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
17天前
|
缓存 算法 Java
开发必懂的Spring循环依赖图解 Spring 循环依赖
开发必懂的Spring循环依赖图解 Spring 循环依赖
18 1
|
20天前
|
Prometheus 监控 Cloud Native
Spring Boot 应用可视化监控
Spring Boot 应用可视化监控
15 0
|
1月前
|
Cloud Native Java 开发者
Spring Boot 4.0:构建云原生Java应用的前沿工具
Spring Boot 4.0:构建云原生Java应用的前沿工具
|
1月前
|
安全 Java 数据安全/隐私保护
【Java】保护你的应用:深入探讨Spring Security的应用与最佳实践
【Java】保护你的应用:深入探讨Spring Security的应用与最佳实践
62 0