转载自: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相关推荐

  1. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    Spring Boot--2分钟构建spring web mvc REST风格HelloWorld 之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介 ...

  2. 使用Spring Boot和Kubernetes构建微服务架构

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 在本教程 ...

  3. 使用PostgreSQL使用Spring Boot和JPA构建基本应用

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 每个不平 ...

  4. 使用Spring Boot和GraphQL构建安全的API

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. Grap ...

  5. 使用Spring Boot和MongoDB构建一个React式应用程序

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...

  6. 使用Spring Boot和MongoDB构建一个反应式应用程序

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 如果您要 ...

  7. Spring Boot 从入门到精通(一)HelloWorld(构建项目,热部署,测试)

    文章目录 一.使用idea构建项目 二.项目结构 三.编写第一个程序Hello World 四.配置项目的热部署 五.单元测试 一.使用idea构建项目 1.选择 File -> New -&g ...

  8. docker jib_Jib –为Spring Boot应用程序构建docker映像

    docker jib 使用Jib为示例Spring Boot应用程序创建docker映像是如此容易,这让我感到惊喜. 让我首先将Jib与以前使用的方法进行对比. 我正在使用bmuschko出色的gra ...

  9. Spring boot(8)---手动构建maven项目springboot

    新建一个maven项目springboot,步骤如下,在Eclipse中选择File-->new-->Project-->Maven-->Maven Project,建立的Ma ...

最新文章

  1. oracle加as报错,【Oracle】-【sqlplus / as sysdba登录报错问题】-新用
  2. 干货丨机器学习和深度学习概念入门
  3. 关于在bootstrap中如何做垂直排列的tab切换效果
  4. html页面音乐播放器_Embed代码
  5. 深入了解Blazor组件
  6. 基于JAVA+Spring+MYSQL的电影票预定系统
  7. 互联网专用计算机屏保,5款屏保,让你的电脑在闲置时也与众不同。
  8. 拓嘉启远:拼多多店铺子账号设置,提高店铺效率
  9. 英语十大词性之三 - 形容词
  10. JS - 数字金额转换中文汉字金额
  11. 不可错过的《一步一步学Spring Boot》视频教程
  12. 认识Http协议(超文本传输协议)
  13. HTML、CSS、JavaScript学习总结
  14. win7 打开“计算机”慢,怎么解决win7开机慢|win7系统开机速度慢的三大解决方法...
  15. 端点检测(VAD)技术
  16. RBCM-PDA-CUR@PLGA红细胞膜包裹聚多巴胺涂覆PLGA/细胞膜包覆纳米拓扑结构阵列
  17. dga (Domain Generation Algorithm) 域名 生成算法 简介
  18. AVB传输协议数据包分析
  19. Geetest极验验证码的使用
  20. 找回浏览器记住的密码

热门文章

  1. 凭着这把AutoML利剑,这家AI公司荣登 IEEE ISI“铁王座”
  2. SAP MM 事务代码MI31之思考之续集
  3. Python 之 matplotlib (三)坐标轴
  4. 是否顺应互联网大脑的发育趋势决定科技企业兴衰
  5. 骁龙855在AI性能上真的秒杀麒麟980?噱头而已
  6. MSRA20周年研究趋势文章|图像识别的未来:机遇与挑战并存
  7. 我们离得开美国的软件和硬件吗?
  8. 机器学习 TOP 10 必读论文 | 资源
  9. 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁!
  10. 程序员大危机,工作难逃监视系统“法眼”!