Spring Boot基本描述

可以利用http://start.spring.io网站的进行Spring Boot的初始化构建。这个初始化构建器允许你输入工程基本信息、挑选工程支持的功能,最后会生成一个zip压缩包供你下载。利用http://start.spring.io网站生成的工程模板中,在pom.xml文件中的parent tag表明此工程继承自spring-boot-starter-parent POM,这样能够保证工程继承Spring Boot的默认依赖以及版本。此POM文件中有两个依赖:spring-boot-starter-web和spring-boot-starter-test。Spring使用starter POM描述这样的POM文件。这些starter POM可引入其它的依赖。例如,spring-boot-starter-web可引入Spring MVC依赖、嵌入式Tomcat容器依赖、Jackson处理依赖。这些starter模块在提供必要依赖和简化应用的POM文件方面起到了重要作用。

Spring starter模块

spring-boot-starter:引入核心依赖,比如auto-configuration支持和日志。
spring-boot-starter-aop:引入AOP和Aspectj
spring-boot-starter-test:引入JUnit、Mockito、spring-test等测试依赖
spring-boot-starter-web:引入MVC依赖和嵌入式servlet容器。
spring-boot-starter-jpa:通过引入spring-data-jpa、spring-orm和Hibernate依赖,提供Java Persistence API支持。
spring-boot-starter-data-rest:通过引入spring-data-rest-webmvc以REST API形式公布资源仓库。
spring-boot-starter-hateoas:通过引入spring-hateoas依赖支持HATEOAS REST服务。
spring-boot-starter-jdbc:支持JDBC。
spring-boot-maven-plugin:支持将应用程序打包成JAR/WAR可执行格式,并且运行。

@SpringBootApplication作用

@SpringBootApplication注解是一个简写注解,等同于如下三个注解:

@Configuration:标注一个类包含一个或者多个spring bean声明。Spring框架会处理这些类,并自动创建bean实例。
@ComponentScan:此注解告诉Spring扫描,寻找被@Configuration、@Service、@Repository等注解标注的类。默认情况下,Spring会扫描被@ComponentScan标注的类所在包中的所有类。
@EnableAutoConfiguration:开启auto-configuration功能,Spring Boot会根据类路径发现的依赖和配置关系,猜测、生成bean配置。

main方法中的run方法会指引Spring从工程中读取注解元信息,并以此为基础生成ApplicationContext。

spring boot运行方式

mvn spring-boot:run

CLI

Spring Boot提供了CLI(command line interface)生成工程模板,但是需要安装CLI。

REST工具

Postman

RESTClient

为资源分配URI的最佳实践

1. 为REST服务选用一个base URI
2. 用复数形式命名资源
3. 用URI层次表明资源的相互关系
4. 当遇到没有资源实体可以表示某个实体(比如统计投票结果)时,可使用查询参数。

@ResponseEntity

@RestController同 @Controll和ResponseBody两个注解功能一样。@ResponseEntity可以控制HTTP响应,包括response body和response heasers。

@RequestBody

@RequestBody注解告诉Spring根据Content-Type将request body转换为需要类型的对象。

URI生成器

可通过如下方式生成URI:

URI newPollUri = ServletUriComponentsBuilder
.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(poll.getId())
.toUri();

fromCurrentRequest方法通过从HttpServletRequest复制host、schema、port等信息形成builder。buildAndExpand方法能构建UriComponent实例,并替换URI路径中的占位符。最后调用toUri方法最终形成URI。

Spring REST实践之Spring Boot的更多相关文章

  1. Spring REST实践之Spring Web MVC

    Spring概要 Spring Framework提供了依赖注入模型和面向切面编程,简化了基础型代码的编写工作以及更好的能够与其它框架和技术整合起来.Spring Framework由data acc ...

  2. 【Spring Cloud】Spring Cloud之整合Spring Cloud Bus以及最佳实践

    一.整合步骤 1)加入Maven坐标 <!-- actuator监控模块 --> <dependency> <groupId>org.springframework ...

  3. Spring+MyBatis实践—MyBatis数据库访问

    关于spring整合mybatis的工程配置,已经在Spring+MyBatis实践—工程配置中全部详细列出.在此,记录一下几种通过MyBatis访问数据库的方式. 通过sqlSessionTempl ...

  4. Spring+MyBatis实践—工程配置

    初次实践:Spring+MyBatis技术搭建框架,采用Bootstrap前端开源框架. 简介: MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所 ...

  5. Spring MVC 实践 - Component

    Spring MVC 实践 标签 : Java与Web Converter Spring MVC的数据绑定并非没有任何限制, 有案例表明: Spring在如何正确绑定数据方面是杂乱无章的. 比如: S ...

  6. Spring MVC 实践 - Base

    Spring MVC 实践 标签 : Java与Web Spring Web MVC Spring-Web-MVC是一种基于请求驱动的轻量级Web-MVC设计模式框架, Spring MVC使用MVC ...

  7. spring security 实践 + 源码分析

    前言 本文将从示例.原理.应用3个方面介绍 spring data jpa. 以下分析基于spring boot 2.0 + spring 5.0.4版本源码 概述 Spring Security 是 ...

  8. spring cloud: 升级到spring boot 2.x/Finchley.RELEASE遇到的坑

    spring boot2.x已经出来好一阵了,而且spring cloud 的最新Release版本Finchley.RELEASE,默认集成的就是spring boot 2.x,这几天将一个旧项目尝 ...

  9. Spring Cloud学习笔记--Spring Boot初次搭建

    1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...

随机推荐

  1. yaf框架流程三

    路由的原理请看http://yaf.laruence.com/manual/yaf.routes.html这个链接 要点:路由的顺序是堆栈模式的,及最后添加的路由规则最优先.由上两篇可知,定义的第一条 ...

  2. java生成简单Excel工作薄

    前言: 代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院.图片URL.等信息制作为excel表格,把每次同步过来的数据给他分析. jx ...

  3. Shell教程4-Shell替换

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: 复制纯文本新窗口   #!/bin/bash a=10 echo -e & ...

  4. g++

    用g++编译程序时,-l 与-L各是什么意思?还有-I -l 表示:编译程序到系统默认路进搜索,如果找不到,到当前目录,如果当前目录找不到,则到LD_LIBRARY_PATH等环境变量置顶的路进去查找 ...

  5. [转] Asp.Net 导出 Excel 数据的9种方案

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  6. file的getPath getAbsolutePath和getCanonicalPath的不同

    file的这几个取得path的方法各有不同,下边说说详细的区别 概念上的区别:(内容来自jdk,个人感觉这个描述信息,只能让明白的人明白,不明白的人看起来还是有点难度(特别试中文版,英文版稍好些)所以 ...

  7. -Xbootclasspath参数、java -jar参数运行应用时classpath的设置方法

    当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误.实际上 ...

  8. Excel导出问题(导出时不去掉前面的0)(转)

    最简单的方法是:在数字前面加'符号.即代码里添加: "'" 以下均是网上搜集到的其他解答: 一.代码如下: style="mso-number-format:'/@';& ...

  9. Appium过程中用到的adb点滴知识库

    一.认识abd adb是什么? adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是d ...

  10. 【LeetCode】28 - Implement strStr()

    Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...