Spring Boot——2分钟构建springweb mvc REST风格HelloWorld
转载自:http://http://jinnianshilongnian.iteye.com/blog/1997192
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中添加如下配置
Java代码 收藏代码
<!-- 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 webapplication -->
<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 milestonesand snapshots -->
<!-- (you don't need this if you areusing 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运行。
实体
Java代码
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) returnfalse;
return true;
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
}
控制器
Java代码
package com.sishuok.controller;
import com.sishuok.entity.User;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;
importorg.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
importorg.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
Java代码
package com.sishuok;
importcom.sishuok.controller.UserController;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;
importorg.springframework.context.annotation.ComponentScan;
importorg.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进行交流。
参考
https://github.com/spring-projects/spring-boot
转载于:https://blog.51cto.com/1306733/1871993
Spring Boot——2分钟构建springweb mvc REST风格HelloWorld相关推荐
- Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
Spring Boot--2分钟构建spring web mvc REST风格HelloWorld 之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介 ...
- 使用Spring Boot和Kubernetes构建微服务架构
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 在本教程 ...
- 使用PostgreSQL使用Spring Boot和JPA构建基本应用
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 每个不平 ...
- 使用Spring Boot和GraphQL构建安全的API
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. Grap ...
- 使用Spring Boot和MongoDB构建一个React式应用程序
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...
- 使用Spring Boot和MongoDB构建一个反应式应用程序
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...
- Spring Boot 从入门到精通(一)HelloWorld(构建项目,热部署,测试)
文章目录 一.使用idea构建项目 二.项目结构 三.编写第一个程序Hello World 四.配置项目的热部署 五.单元测试 一.使用idea构建项目 1.选择 File -> New -&g ...
- docker jib_Jib –为Spring Boot应用程序构建docker映像
docker jib 使用Jib为示例Spring Boot应用程序创建docker映像是如此容易,这让我感到惊喜. 让我首先将Jib与以前使用的方法进行对比. 我正在使用bmuschko出色的gra ...
- Spring boot(8)---手动构建maven项目springboot
新建一个maven项目springboot,步骤如下,在Eclipse中选择File-->new-->Project-->Maven-->Maven Project,建立的Ma ...
最新文章
- oracle加as报错,【Oracle】-【sqlplus / as sysdba登录报错问题】-新用
- 干货丨机器学习和深度学习概念入门
- 关于在bootstrap中如何做垂直排列的tab切换效果
- html页面音乐播放器_Embed代码
- 深入了解Blazor组件
- 基于JAVA+Spring+MYSQL的电影票预定系统
- 互联网专用计算机屏保,5款屏保,让你的电脑在闲置时也与众不同。
- 拓嘉启远:拼多多店铺子账号设置,提高店铺效率
- 英语十大词性之三 - 形容词
- JS - 数字金额转换中文汉字金额
- 不可错过的《一步一步学Spring Boot》视频教程
- 认识Http协议(超文本传输协议)
- HTML、CSS、JavaScript学习总结
- win7 打开“计算机”慢,怎么解决win7开机慢|win7系统开机速度慢的三大解决方法...
- 端点检测(VAD)技术
- RBCM-PDA-CUR@PLGA红细胞膜包裹聚多巴胺涂覆PLGA/细胞膜包覆纳米拓扑结构阵列
- dga (Domain Generation Algorithm) 域名 生成算法 简介
- AVB传输协议数据包分析
- Geetest极验验证码的使用
- 找回浏览器记住的密码
热门文章
- 凭着这把AutoML利剑,这家AI公司荣登 IEEE ISI“铁王座”
- SAP MM 事务代码MI31之思考之续集
- Python 之 matplotlib (三)坐标轴
- 是否顺应互联网大脑的发育趋势决定科技企业兴衰
- 骁龙855在AI性能上真的秒杀麒麟980?噱头而已
- MSRA20周年研究趋势文章|图像识别的未来:机遇与挑战并存
- 我们离得开美国的软件和硬件吗?
- 机器学习 TOP 10 必读论文 | 资源
- 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁!
- 程序员大危机,工作难逃监视系统“法眼”!