Spring Boot提供了一种为Rest Controller文件编写单元测试的简便方法。...在SpringJUnit4ClassRunner和MockMvc的帮助下,可以创建一个Web应用程序上下文来为Rest Controller文件编写单元测试。...对于编写单元测试,需要在构建配置文件中添加Spring Boot Starter Test依赖项,如下所示。... org.springframework.boot spring-boot-starter-test test 编写REST控制器的单元测试 在本节中,看看如何为REST控制器编写单元测试。
SpringBoot创建的Maven项目中,会默认添加spring-boot-starter-test依赖。在《5分钟快速上手SpringBoot》中编写的单元测试使用了MockMvc。...使用Mockito一般分三个步骤:1、模拟测试类所需的外部依赖;2、执行测试代码;3、判断执行结果是否达到预期; MockMvc MockMvc是由spring-test包提供,实现了对Http请求的模拟...创建SpringBoot项目中默认引入的spring-boot-starter-test间接引入了spring-test,因此无需再额外引入jar包。... org.springframework.boot spring-boot-starter-test...*/ mockMvc.perform(MockMvcRequestBuilders .get("/hello") // 设置返回值类型为utf-8,否则默认为ISO-8859-1 .
Spring REST错误处理 Spring和Spring Boot提供了许多错误/异常处理选项。...这是在使用基于Spring的REST API时的一种便捷方式,因为可以指定ResponseEntity为返回值。...200 (OK响应。...Boot REST异常处理 Spring Boot提供了许多构建RESTful API的功能。...Boot的application.properties文件中将以下属性设置为true spring.mvc.throw-exception-if-no-handler-found=true 如果处理一个请求发生异常没有异常处理器时
使用 Spring Boot Actuator 构建 RESTful Web 服务 Spring Boot Actuator是 Spring Boot 的一个子项目。...创建资源控制器 在 Spring 中,REST 端点是 Spring MVC 控制器。...端点控制器不依赖视图(例如 JSP)以 HTML 格式呈现模型数据,而是将要写入的数据直接返回到响应的正文中。...请注意,这是 Spring Initializr 为您创建的应用程序类,您甚至无需对其进行修改即可使其适用于这个简单的应用程序。...但是当 Spring Boot 在你的类路径上检测到spring-webmvc时,它会自动打开这个注解。这使您可以在接下来的步骤中构建控制器。
Spring Boot Actuator 是 Spring Boot 的一个子项目。通过它,可以很轻易地为应用提供多种生产级服务。本教程中,你将通过构建一个应用来学习如何添加这些服务。 1....提供一个内置有 Spring Boot 依赖 匹配版本号集合的依赖解析器。你也可以重写为任意版本,但它默认为 Spring Boot 所选的版本号集合。 4....提供一个内置有 Spring Boot 依赖 匹配版本号集合的依赖解析器。你也可以重写为任意版本,但它默认为 Spring Boot 所选的版本号集合。 5....端点控制器不依赖视图(例如JSP)来渲染 HTML 中的模型数据,而是简单地将要写入的数据直接返回到响应体中。...测试应用 为了检查应用程序是否可以正常运行,你应该编写应用程序的单元/集成测试类。可参照下面测试案例: 控制器是否正常 管理端点是否正常 正如在测试类中所看到的那样,我们在随机端口启动应用。
org.springframework.boot spring-boot-starter-parent...测试说明 实例测试如下,上面我们声明捕获的两种异常被拦截并输出对应的堆栈信息; 但是需要注意 404 和未捕获的 500 异常则显示的 SpringBoot 默认的错误页面; 此外我们捕获返回的 http...状态码是 200 ?...@ResponseStatus 上面的 case 中捕获的异常返回的状态码是 200,但是在某些 case 中,可能更希望返回更合适的 http 状态码,此时可以使用ResponseStatus来指定...,404 被我们捕获并返回堆栈信息 ?
如果您使用的是Spring Boot的Gradle插件,或者您使用的是Maven 和 spring-boot-starter-parent ,则会自动执行此操作。...Web端点响应状态 端点操作的默认响应状态取决于操作类型(读取,写入或删除)以及操作返回的内容(如果有)。 @ReadOperation 返回一个值,响应状态为200(OK)。...如果它未返回值,则响应状态将为404(未找到)。 如果 @WriteOperation 或 @DeleteOperation 返回值,则响应状态将为200(OK)。...53.7.4控制器端点 @ControllerEndpoint 和 @RestControllerEndpoint 可用于实现仅由Spring MVC或Spring WebFlux公开的端点。...控制器端点提供与Spring Web框架的更深层次集成,但代价是可移植性。应尽可能优先考虑 @Endpoint 和 @WebEndpoint 注释。
Spring Boot2教程 在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java...5、测试 最后,添加一个 HelloController ,然后启动项目进行测试: @RestController public class HelloController { @GetMapping...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 中自带的异常处理器会自动查找到异常页面。 页面定义如下: ? 页面内容如下: <!...类的errorHtml 方法中,这个方法用来返回异常页面+数据,还有另外一个 error 方法,这个方法用来返回异常数据(如果是 ajax 请求,则该方法会被触发)。...篇幅有限,其他内容就不在这里一一展示了,这份Spring Boot实战教程已整理成一份PDF文档,共有200多页。
文末有彩蛋~ Spring Boot2教程 在Spring Boot项目中,正常来说是不存在XML配置,这是因为Spring Boot不推荐使用 XML ,注意,并非不支持,Spring Boot...5、测试 最后,添加一个 HelloController ,然后启动项目进行测试: @RestController public class HelloController { @GetMapping...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 中自带的异常处理器会自动查找到异常页面。 页面定义如下: 页面内容如下: <!...类的errorHtml 方法中,这个方法用来返回异常页面+数据,还有另外一个 error 方法,这个方法用来返回异常数据(如果是 ajax 请求,则该方法会被触发)。...篇幅有限,其他内容就不在这里一一展示了,这份Spring Boot实战教程已整理成一份PDF文档,共有200多页。
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程 ---- 今天我们继续来搞 WebFlux!...Spring Boot 视频教程中,松哥对 MongoDB 也有过介绍,感兴趣的小伙伴戳这里:Spring Boot+Vue+微人事视频教程。...save 方法的返回值就是 Mono。 我们来看看测试效果: ?...按照 RESTful 规范,如果删除成功请求响应码就是 200,如果删除失败请求响应码就是 404,因此,我们开发出来的接口如下: @DeleteMapping("/{id}") public Mono...可以看到,删除成功后,响应码为 200: ? 删除失败后,响应码为 404: ?
有了 Spring Boot 后这些问题都解决了。...编写第一个 REST 接口 本节将创建一个控制器,编写第一个 REST 接口,访问地址使用 /hello,代码如下所示。...,down 方法指定应用的状态为不健康。...=false 然后当我们调用一个不存在的接口时,返回的错误信息就是我们自定义的那种格式了: { "status": false, "code": 404, "message": "No...其实上面的方法虽然能够达到预期的效果,但是也会存在一些问题:如果这个端口已经在使用了,那么启动必然会报错。
该GET请求应200 OK在正文中返回一个带有 JSON的响应,表示问候语。它应该类似于以下输出: { "id": 1, "content": "Hello, World!"...创建资源控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...此代码使用 Spring@RestController注释,它将类标记为控制器,其中每个方法返回域对象而不是视图。它是同时包含@Controller和的简写@ResponseBody。...@EnableAutoConfiguration:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。.../mvnw spring-boot:run. 或者,您可以构建 JAR 文件,.
该GET请求应200 OK在正文中返回带有 JSON 的响应以表示问候。它应该类似于以下清单: { "id": 1, "content": "Hello, World!"...创建资源控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...我们GET在这种情况下使用它是因为它便于测试。Spring 仍然会拒绝来源与 CORS 配置不匹配的 GET 请求。...您可以结合全局和控制器级别的 CORS 配置。 创建应用程序类 Spring Initializr 为您创建了一个简单的应用程序类。...此外,该id属性已从 更改1为2。这证明您正在GreetingController跨多个请求处理同一个实例,并且它的counter字段在每次调用时都会按预期递增。
今天给大家推荐一款SpringBoot官方的热部署工具spring-boot-devtools,修改完代码后可快速自动重启应用!...spring-boot-devtools简介 SpringBoot官方开发工具,如果你的应用集成了它,即可实现热部署和远程调试。 实现原理 使用该工具应用为什么启动更快了?...>spring-boot-devtools true 为了方便测试,我们在项目中添加了如下测试接口...http://localhost:8088/swagger-ui.html { "code": 200, "message": "返回消息", "data": null } 由于在项目构建时...构建成功后可以发现远程服务会自动重启,并应用修改后的代码,访问测试接口返回如下信息; { "code": 200, "message": "返回消息(远程调试)", "data": null
从 Spring Initializr 开始 您可以使用这个预先初始化的项目并单击 Generate 下载 ZIP 文件。此项目配置为适合本教程中的示例。...该GET请求应200 OK在表示问候的正文中返回带有 JSON 的响应。它应该类似于以下输出: { "id": 1, "content": "Hello, World!"...创建资源控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...此代码使用 Spring@RestController注释,它将类标记为控制器,其中每个方法都返回域对象而不是视图。它是同时包含@Controller和 的简写@ResponseBody。.../mvnw spring-boot:run. 或者,您可以使用构建 JAR 文件,.
为 REST 资源返回的表示不仅包含数据,还包含指向相关资源的链接。因此,表示的设计对于整体服务的设计至关重要。...该GET请求应200 OK在正文中返回带有 JSON 的响应以表示问候。 除此之外,资源的 JSON 表示将通过_links属性中的超媒体元素列表进行丰富。最基本的形式是指向资源本身的链接。...正如您将在本指南后面看到的那样,Spring 将使用 Jackson JSON 库将类型的实例自动编组Greeting为 JSON。 接下来,创建将提供这些问候语的资源控制器。...创建 REST 控制器 在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。...返回的LinkBuilder将检查控制器方法的映射注释以准确构建该方法映射到的 URI。 Spring HATEOAS 尊重各种X-FORWARDED-标头。
在实际开发中,我们会遇到很多异常,在发生异常的时候Spring Boot默认提供了错误页面展示给用户。看似比较友好,其实页面很丑。...Boot中也非常简单,直接编写对应的错误页面,进行覆盖即可: /** * 自定义错误页面覆盖spring boot中的错误页面 * @author yinjihuan * */ @Controller...错误页面,最友好的方式就是返回固定的JSON格式,里面有个code为404。...String message; private Object data; } 这种在发生错误时这边会捕获到,然后封装好返回格式,返回给调用方 最后关键的一步是在spring boot的配置文件中加上如下配置...Boot 1.X和2.X优雅重启实战》 《Spring Boot中快速操作Mongodb》 《Spring JdbcTemplate的升级版》
有了 Spring Boot 后这些问题都解决了。...编写第一个 REST 接口 创建一个控制器,编写第一个 REST 接口,访问地址使用 /hello,代码如下。...通过 spring-boot-devtools 就可以实现热部署。 只需要添加 spring-boot-devtools 的依赖即可实现热部署功能,代码如下所示。...,down 方法指定应用的状态为不健康。...=false 当我们调用一个不存在的接口时,返回的错误信息就是我们自定义的那种格式: { "status": false, "code": 404, "message": "No handler
org.springframework.boot spring-boot-starter-web...>spring-boot-starter-thymeleaf 第三步:创建控制器并实现ErrorController...return "error-500"; } } return "error"; } } 第四步:创建一个控制器...专车总结 第一个问题:如何针对不同的异常返回自定义错误页面?...自定义错误页面最主要的是要实现ErrorController,然后从request作用域中获取相应的错误码,针对不同的错误码,返回对应的页面 专车地址 [SpringBoot自定义错误页面](https
书接上文⬆⬆⬆ HTTP 是平台 要使用 Web 层次包装您的存储库,您必须使用 Spring MVC。多亏了 Spring Boot,代码基础设施很少。...AnEmployeeRepository由构造函数注入到控制器中。...@ExceptionHandlerEmployeeNotFoundException将建议配置为仅在抛出an 时才响应。.../mvnw clean spring-boot:run 或者使用您安装的 Maven 版本输入: $ mvn clean spring-boot:run 当应用程序启动时,我们可以立即对其进行询。...连接到 localhost (::1) 端口 8080 (#0)> GET /员工 HTTP/1.1> 主机:本地主机:8080> 用户代理:curl/7.54.0> 接受:*/*>< HTTP/1.1 200
领取专属 10元无门槛券
手把手带您无忧上云