之前有一篇《5分钟构建spring web mvc REST风格HelloWorld》介绍了普通方式开发spring web mvc web service。接下来看看使用spring boot如何快速构建一个。
Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以”即时运行“的应用和服务。支持约定大于配置,目的是尽可能快地构建和运行Spring应用。
之前我们创建基于Spring的项目需要考虑添加哪些Spring依赖和第三方的依赖。使用Spring Boot后,我们可以以最小化的依赖开始spring应用。大多数Spring Boot应用需要很少的配置即可运行,比如我们可以创建独立独立大Java应用,然后通过java -jar运行启动或者传统的WAR部署。其也提供了命令行工具来直接运行Spring脚本(如groovy脚本)。也就是说Spring Boot让Spring应用从配置到运行变的更加简单,但不对Spring本身提供增强(即额外的功能)。
目的:
让所有Spring开发变得更快,且让更多的人更快的进行Spring入门体验,提供“starter” POM来简化我们的Maven配置(也就是说使用Spring Boot只有配合maven/gradle等这种依赖管理工具才能发挥它的能力),不像以前,构建一个springmvc项目需要进行好多配置等
开箱即用,快速开始需求开发而不被其他方面影响(如果可能会自动配置Spring)
提供一些非功能性的常见的大型项目类特性(如内嵌服务器、安全、度量、健康检查、外部化配置),如可以直接地内嵌Tomcat/Jetty(不需要单独去部署war包)
绝无代码生成,且无需XML配置
我的构建环境
JDK 7
Maven 3
Servlet3容器
创建项目
首先使用Maven创建一个普通Maven应用即可,不必是web的。
添加Spring Boot相关POM配置
在pom.xml中添加如下配置
- <!-- Inherit defaults from Spring Boot -->
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>0.5.0.BUILD-SNAPSHOT</version>
- </parent>
- <!-- Add typical dependencies for a web application -->
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- </dependencies>
- <!-- Package as an executable JAR -->
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
- <!-- Allow access to Spring milestones and snapshots -->
- <!-- (you don't need this if you are using anything after 0.5.0.RELEASE) -->
- <repositories>
- <repository>
- <id>spring-snapshots</id>
- <url>http://repo.spring.io/snapshot</url>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- <repository>
- <id>spring-milestones</id>
- <url>http://repo.spring.io/milestone</url>
- <snapshots><enabled>true</enabled></snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>spring-snapshots</id>
- <url>http://repo.spring.io/snapshot</url>
- </pluginRepository>
- <pluginRepository>
- <id>spring-milestones</id>
- <url>http://repo.spring.io/milestone</url>
- </pluginRepository>
- </pluginRepositories>
继承spring-boot-starter-parent后我们可以继承一些默认的依赖,这样就无需添加一堆相应的依赖,把依赖配置最小化;spring-boot-starter-web提供了对web的支持,spring-boot-maven-plugin提供了直接运行项目的插件,我们可以直接mvn spring-boot:run运行。
实体
- package com.sishuok.entity;
- /**
- * <p>User: Zhang Kaitao
- * <p>Date: 13-12-22
- * <p>Version: 1.0
- */
- public class User {
- private Long id;
- private String name;
- public Long getId() {
- return id;
- }
- public void setId(Long id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- User user = (User) o;
- if (id != null ? !id.equals(user.id) : user.id != null) return false;
- return true;
- }
- @Override
- public int hashCode() {
- return id != null ? id.hashCode() : 0;
- }
- }
控制器
- package com.sishuok.controller;
- import com.sishuok.entity.User;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * <p>User: Zhang Kaitao
- * <p>Date: 13-12-22
- * <p>Version: 1.0
- */
- //@EnableAutoConfiguration
- @RestController
- @RequestMapping("/user")
- public class UserController {
- @RequestMapping("/{id}")
- public User view(@PathVariable("id") Long id) {
- User user = new User();
- user.setId(id);
- user.setName("zhang");
- return user;
- }
- //public static void main(String[] args) {
- // SpringApplication.run(UserController.class);
- //}
- }
运行
第一种方式
通过在UserController中加上@EnableAutoConfiguration开启自动配置,然后通过SpringApplication.run(UserController.class);运行这个控制器;这种方式只运行一个控制器比较方便;
第二种方式
通过@Configuration+@ComponentScan开启注解扫描并自动注册相应的注解Bean
- package com.sishuok;
- import com.sishuok.controller.UserController;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- /**
- * <p>User: Zhang Kaitao
- * <p>Date: 13-12-22
- * <p>Version: 1.0
- */
- @Configuration
- @ComponentScan
- @EnableAutoConfiguration
- public class Application {
- public static void main(String[] args) {
- SpringApplication.run(Application.class);
- }
- }
到此,一个基本的REST风格的web应用就构建完成了。
地址栏输入http://localhost:8080/user/1即可看到json结果。
如果大家查看其依赖,会发现自动添加了需要相应的依赖(不管你用/不用),但是开发一个应用确实变得非常快速,对于想学习/体验Spring的新手,快速建立项目模型等可以考虑用这种方式。当然如果不想依赖这么多的jar包,可以去掉parent,然后自己添加依赖。
欢迎加入spring群134755960进行交流。
相关推荐
在IT行业中,Spring MVC是一个广泛使用的Java框架,用于构建Web应用程序,特别是对于处理HTTP请求和响应。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,它基于HTTP协议,实现了...
Java是编程语言,Spring Boot是构建在这个语言上的框架,而“helloworld”则暗示了这是一个基础的教学示例,用来展示如何使用Spring Boot来开发简单的Java应用。 至于压缩包中的文件“helloworld-1”,根据命名习惯...
选择"Web"作为起步依赖,因为它包含了Spring Web MVC,这是构建RESTful服务的关键组件。 项目生成后,主要的结构会包括`src/main/java`和`src/main/resources`目录。在`src/main/java`下,你会看到一个主应用类,...
引入`spring-boot-starter-web`依赖,它包含了Spring MVC和Tomcat等Web开发所需的核心组件: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-web ``` 4. 编写控制器与...
Spring Boot HelloWorld 示例展示了如何创建一个简单的 web 应用程序,使用 Maven 创建一个标准的 Java 项目,并添加 spring-boot-starter-web 依赖以支持构建 web 应用。编写主程序类,使用 @SpringBootApplication...
5. **HelloWorld示例**:创建一个简单的Spring Boot应用,可以创建一个名为`HelloController`的类,使用`@RestController`注解标识这是一个REST控制器,然后在`hello()`方法中返回“Hello World!”字符串,通过`@...
2. **起步依赖**(Starter POMs):Spring Boot 提供了一系列的起步依赖,如 `spring-boot-starter-web`、`spring-boot-starter-data-jpa` 等,它们包含了一组默认的、常用依赖,使得添加依赖变得更加简单。...
在“spring boot restful服务小例子”中,我们重点讨论的是如何使用 Spring Boot 构建 RESTful Web 服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于 HTTP 协议,可以...
在创建第一个 Spring Boot 项目时,通常至少会包含 Web 依赖,以便构建 web 应用。 创建完成后,IDEA 会自动生成项目结构。在 Spring Boot 项目中,通常遵循 MVC 设计模式来组织代码。因此,我们会创建以下四个包:...
在这个"spring 小项目"中,你可能正在经历从零开始构建一个基于Spring Boot的应用程序的过程,包括设置基础环境、编写 HelloWorld 示例以及解决遇到的小问题。 首先,让我们深入了解一下Spring Boot的核心特点: 1...
"hello-world-rest:Springboot Hello World REST服务"是一个典型的入门级项目,它展示了如何使用Spring Boot创建一个简单的RESTful Web服务。REST(Representational State Transfer)是一种架构风格,常用于构建Web...
5. **Hello World示例**:在"sample-spring-boot-hello-world"项目中,很可能会有一个简单的Controller,它通过`@RestController`注解标记为REST控制器,并且有一个方法,可能使用`@RequestMapping`或`@GetMapping`...
"Basic-Spring-Boot-WebApp"项目是一个基础的Spring Boot Web应用示例,展示了如何使用Spring Boot快速构建一个具备REST API功能的Web服务。通过学习这个项目,开发者可以了解到Spring Boot的核心概念,包括自动配置...
《Spring Boot Hello:深入浅出理解Spring Boot基础》 在当今的Java开发领域,Spring Boot以其简洁、快速的启动方式,以及对微服务架构的强大支持,成为开发者们钟爱的框架之一。本篇文章将深入探讨“Spring Boot ...
在本项目中,“HelloWorld Restfull”意味着我们将构建一个基础的示例应用,它不仅会展示如何设置和运行 SpringMVC 项目,还会涉及到 RESTful 风格的 API 设计。 1. **SpringMVC 概述** - MVC 模式:将应用程序...
在本教程中,我们将深入探讨如何使用Spring Boot创建一个简单的"Hello World" RESTful Web服务。Spring Boot是Java生态系统中的一个流行框架,它简化了设置和配置过程,使得开发人员可以快速启动和运行应用程序。 ...
Rest<String> result = RestBody.okData("Hello, World!", "数据加载成功"); ``` - 失败情况下的返回: ```java Rest<Void> errorResult = RestBody.failure(404, "资源未找到"); ``` ### 三、模块化设计与...
在Spring Boot中,REST API的构建主要依赖于Spring MVC,这是一个用于构建Web服务的强大模块。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,能够通过URI...
在弹出的窗口中,填写项目名,选择合适的Group和Artifact ID,确保选中“Spring Web”选项,这将为你引入必要的Spring MVC和Web依赖。 现在,项目已经创建好,但我们需要使用Maven来管理依赖。Maven是一个项目管理...