摘要:如何正确的处理API的返回信息,让返回的错误信息提供更多的含义是一个非常值得做的功能.默认一般返回的都是难以理解的堆栈信息,然而这些信息也许对于API的客户端来说有可能并没有多大用途,并没有多大意义.如果我们把错误的信息分成多个字段,这样api客户端就可以解析这些信息,然后给用户反馈更好的错误message.在本文中,我们就来介绍在我们使用springboot来构建RESTAPI时如何更好的更恰当的处理错误信息.使用Spring来构建RESTAPI现在基本上已经变成了java 如何正确的处…
一.错误的处理 方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController @Controller @RequestMapping(value = "error") public class BaseErrorController implements ErrorController { private static final Logger logger = LoggerFactory.getLogger(BaseErrorControl…
本文分别说明.NET CORE与Spring Boot 编写控制台程序应有的“正确”方法,以便.NET程序员.JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写的控制台程序要好. 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因系统设计需求而异,我这里所谓的正确方法是指使用面向对象,依赖注入IOC,切面控制AOP等编码规范来提升程序的性能.整洁度.可读性.可维护性等,最终达到让人感觉有点高大上,有点优雅的样…
1. RESTful简述    REST是一种设计风格,是一组约束条件及原则,而遵循REST风格的架构就称为RESTful架构,资源是RESTful的核心,一个好的RESTful架构,通过URL就能很清晰的了解其相应的操作和需求是什么,即1. 通过URL定位资源,如:com.mobin/api/v1/shenzhen/subways //获取深圳地铁列表com.mobin/api/v1/shenzhen/schools   //获取深圳学校列表2. HTTP描述操作GET:获取资源POST:创建…
作者:小莫链接:https://www.zhihu.com/question/28119576/answer/134580038来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.环境1. JAVA82. MAVEN 3.0.53. IDEA 2016.2.54. spring boot 1.4.1 <dependency> <groupId>io.springfox</groupId> <artifactId>springf…
我们在用Spring Boot去向前端提供Restful Api接口时,经常会遇到接口处理异常的情况,产生异常的可能原因是参数错误,空指针异常,SQL执行错误等等. 当发生这些异常时,Spring Boot会自动对异常进行一次统一的处理,返回一个异常信息: @RestController public class LiveRestController { // 用户查询某一种直播状态下的所有直播信息 @GetMapping("/lives") public List<LiveRe…
一.概述在本文中,我们将研究如何禁用和自定义 Spring Boot 应用程序的默认错误页面,因为正确的错误处理描述了专业性和质量工作. 2.禁用白标错误页面 首先,让我们看看如何通过将server.error.whitelabel.enabled属性设置为false 来完全禁用白标错误页面: server.error.whitelabel.enabled=false 将此条目添加到 application.properties 文件将禁用错误页面并显示源自底层应用程序容器(例如 Tomcat)…
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “简单,踏实~ 读书写字放屁” 一.为何用RESTful API 1.1 RESTful是什么? RESTful(Representational State Transfer)架构风格,是一个Web自身的架构风格,底层主要基于HTTP协议(ps:提出者就是HTTP协议的作者),是分布式应用架构的伟大实践理论.RESTful架构是无状态的,表现为请求-响应的形式,有别于基于Bower的Sess…
spring boot 作为微服务的便捷框架,在错误页面处理上也有一些新的处理,不同于之前的spring mvc 500的页面处理是比较简单的,用java config或者xml的形式,定义如下的bean即可 [html] view plain copy <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="e…
使用spring boot通常使用spring-boot-starter-mail进行邮件的发送.当进行邮件群发的话,如果一个收件人的地址错误,会导致所有邮件都发送失败.因此我们需要在邮件发送失败的时候把错误的收件人移除,重新发送. 当邮件发送失败的时候会抛出MailSendException,异常信息中包含错误的收件人信息. 主要代码如下: private void sendMail(List<String> mailList, MimeMessageHelper message){ try…
spring boot API注解记录及测试 部分注解解析 @Controller : 修饰创建处理 http 处理对象,一般用于页面渲染时使用. @RestController : Json数据交互; 相当于@Controller 中配置 @ResponseBody 来返回 Json数据. @RequestMapping : 配置映射URL. 关于 @Controller 与 @RestController 的区别: 官方文档:@RestController is a stereotype a…
回顾并详细说明一下在在之前章节中的中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下之前的内容. 下面我们尝试使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中如何映射HTTP请求.如何传参.如何编写单元测试. * RESTful API具体设计如下:* 请求类型 URL 功能说明 GET /users…
spring boot生成的jar包提示没有主清单属性. 需要在pom里加入配置. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&…
异步调用几乎是处理高并发Web应用性能问题的万金油,那么什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序.同步调用下面通过一个简单示例来直观的理解什么是同步调用:定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内) @Componentpubli…
1. 使用 Idea 创建 Spring Initializer 项目 在创建项目的对话框中添加 Web 和 Lombok,或者建立项目后在 pom.xml 中添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependenc…
如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下相关的内容. @Controller:修饰class,用来创建处理http请求的对象 @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式. @RequestMapping:配置url映射 下面我们尝试使用…
一.SpringBoot常见配置 (1)SpingBoot与MyBatis集成时跟踪SQL语句 log4j: logger: java: sql: ResultSet: TRACE (2)日志跟踪 debug: true logging: config: classpath:log4j2/log4j2.xml license: file-path: xxx @Value("${license.file-path}") private String licenseFilePath (3)…
一.先下载配置maven环境 1.下载地址:http://maven.apache.org/download.cgi windows下下载zip文件 2.解压后放到某个文件目录下 3.配置环境变量 (1)maven_home (2)path中配置maven_home/bin 4.使用spring tool suite开发工具配置maven环境 (1)配置maven服务 (2)指定settings文件,并在settings文件中设置jar下载位置和下载jar包的服务器地址 5.在STS中点击右键创…
一.修改messages.properties 找源码中的messages.properties,复制一份放在classpath下,修改你要修改的内容 AbstractUserDetailsAuthenticationProvider.badCredentials=用户名或者密码错误 二.配置messages.properties路径 在启动类Application中添加 我的messages.properties就在Resources目录下. 不能在WebSecurityConfigurerA…
1).如何定制错误的页面: ​ 1).有模板引擎的情况下:error/状态码; [将错误页面命名为 错误状态码.html 放在模板引擎文件夹里面的 error文件夹下],发生此状态码的错误就会来到 对应的页面: ​ 我们可以使用4xx和5xx作为错误页面的文件名来匹配这种类型的所有错误,精确优先(优先寻找精确的状态码.html): ​ 页面能获取的信息: ​ timestamp:时间戳 ​ status:状态码 ​ error:错误提示 ​ exception:异常对象 ​ message:异常…
1.创建项目 2.创建 controller IndexController.java package com.roncoo.example.controller; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind…
如果访问了错误的路径,或者后台报错 如果没有一个统一的页面! 或者说页面上展示一堆报错信息,既影响美观,又对用户不友好! 那么如何配置? 定义 ErrorPageConfig,配置错误状态与对应访问路径 @Component public class ErrorPageConfig implements ErrorPageRegistrar { private static final Logger logger = LoggerFactory.getLogger(ErrorPageConfig…
@Controller:修饰class,用来创建处理http请求的对象 @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式. @RequestMapping:配置url映射 RESTful API具体设计如下: 请求类型 URL 功能说明 GET /users 查询用户列表 PO…
错误描述: Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.util.Assert.state(Assert.java:94) ~[spring-core-5.1.10.RELEASE.jar:5.1.10.RELEASE] 错误原因及解决办法: 可能是没有加入驱动的依赖jar包,检查pom.xml中是否有对应…
1.运行打包后的项目 java -jar spring-boot-demo-2-1-0.0.1-SNAPSHOT.jar…
1.打包 -- Maven build 2.问题 [WARNING] The requested profile "pom.xml" could not be activated because it does not exist. 3.打包后的文件…
参考了:https://www.jianshu.com/p/cfbbc0bb0b84 再次感谢,但还是有些调整 一.在zuul服务中加入两个配置参数(location: /data/apps/temp # 上传文件的临时目录,basedir: /data/apps/temp) 二.在微服务中不要再加入上面的两个配置了,不然可能报错,不能正常上传成功…
1 将返回设置为produces = "application/json" 返回给客户端json格式的response. 2 对各种异常的处理 各种异常如何返回给客户端? 各种异常通过ResponseEntity返回给客户端. 3 一种通用的处理方式 3.1 定义一个Exception对象 public class UserNotFountException extends RuntimeException{    private String userId; public UserN…
首先是写一个注解类 拦截器中实现 注册到springboot中 在Controller中加入注解 说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类: import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.ElementTyp…