![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springboot
文章平均质量分 61
红藕香残玉簟秋
一介俗人
展开
-
SpringBoot简单的全局异常处理和登录拦截
前言敲代码的时候会遇到各种各样的异常,有业务异常,有代码异常,如果都用try-catch处理,那真的是要了命了。所以,我们就想个办法来全局处理异常。下面就是一个简单的思路,实际应用的时候可以基于此优化。一、定义统一返回数据为了和前端交流更加方便,定义一个类用来返回前端。@Datapublic class Result<T> implements Serializable { /** * 错误码 */ private Integer cod原创 2021-02-24 17:12:30 · 625 阅读 · 0 评论 -
java使用itext7实现html转pdf
前言最近项目里有个功能是要把前端展示的内容给导出pdf。经过一段时间的调研和尝试,最终选择了itext7来实现。网上有很多关于itext5的博客或者文档,但是关于itext7还挺少的。首先介绍一下大体流程吧,项目是基于springboot 和vue 的前后端分离架构,基本思路是由前端生成html文件,传给后端,后端通过itext7转为pdf返回前端。废话少说,直接上代码!一、前端处理html由于不是我写的代码,这里只能给出参考:https://segmentfault.com/a/11900原创 2021-01-18 17:26:30 · 11063 阅读 · 45 评论 -
SpringBoot加载自定义配置文件
SpringBoot加载自定义配置文件前言一、配置文件二、配置pom文件2.1 配置 profiles2.2 配置resources三、加载自定义配置文件写在最后的话前言SpringBoot的配置文件是application.properties或者application.yml。我们还可以根据spring.profiles.active配置项添加application-dev.properties或者application-prod.properties。这样,SpringBoot启动的时候就会自动添原创 2020-08-24 10:14:26 · 2765 阅读 · 0 评论 -
springboot使用validator进行参数校验
前言公司项目是前后端分离的,为了保证前端传输数据的合法性,对参数进行校验就很有必要。hibernate-validator就是一个不错的参数校验的解决方法。spring-boot-starter-web包里面有hibernate-validator的包,所以不需要引用hibernate validator依赖,直接就可以用。一、配置validatorValidator是javax包下的...原创 2019-05-31 11:04:40 · 5807 阅读 · 4 评论 -
springboot结合druid使用多数据源,动态切换
前言有时候为了减少数据库的压力,就要实现数据库的读写分离,这种情况往往是读多写少的情况,例如电商平台。既然数据库读写分离了,那么代码层也就需要读写不同的数据库了。实现方法应该有不少,我知道有插件实现,判断写请求还是读请求来请求不同的数据库,还有代码实现,不同的SQL访问不同的数据源,也就是接下来要说的多数据源。一、基础介绍代码层多数据源的实现方法也有很多,例如不同的包拥有不同的数据源、...原创 2019-06-10 14:39:48 · 16151 阅读 · 24 评论 -
【造个轮子系列】之springboot自定义异常+全局异常处理
前言公司开发模式为前后端分离,为了统一返给前端的数据,所以我们就自定义异常,并且全局处理这些异常。然后我以此为基础写了一个springboot的starter,又添加了一些其他功能,在此作为记录。一、自定义异常首先,为了统一返回数据,就要写个类封装一下返回的数据,正确的时候把数据放进去,错误的时候就要返回错误信息,为了方便管理,我们就需要把这些错误信息放进枚举里。但是我们是要造个轮子,...原创 2019-06-10 16:12:35 · 1009 阅读 · 0 评论 -
【造个轮子系列】之springboot使用AOP打印请求日志
前言在开发项目的时候,想知道请求的各种参数,需要自己去logger打印,但是我总觉得的有点麻烦。所以我就使用AOP写了一个starter,来打印一些请求参数,方便开发时查看请求参数以及其他内容。一、配置类首先写个配置类,主要是方便日志打印的开启与关闭@ConfigurationProperties(prefix="spring.request.logging")public c...原创 2019-06-10 16:28:11 · 281 阅读 · 0 评论 -
(一)springboot结合websocket之使用STOMP协议推送消息
前言有时候前端需要实时的获取后端的信息,比如订单的消息,发货之类的通知,实时的服务器信息,股票信息等。有一种方法是ajax轮训,就是间隔一段时间查询服务器一次,但是这种方式对服务器不太友好。所以,还有另一种方法,websocket。一、引入websocketpom文件引入依赖<dependency> <groupId>org.springframe...原创 2019-07-17 17:14:06 · 2158 阅读 · 0 评论 -
Springmvc 下载文件
前言有时候项目里需要下载文件的功能,但是一时之间不知道从何下手,故此记录。一、使用HttpServletResponse最简单方便的便是使用HttpServletResponse,设置一下请求头,获取到输出流。 public static void download(HttpServletRequest request, HttpServletResponse response)...原创 2019-08-05 10:03:24 · 416 阅读 · 0 评论 -
Mybatis注解开发之批量添加和批量更新
前言大部分使用mybatis的开发者都是用xml配置文件来操作数据库。但是我们公司使用的是注解开发,xml文件方式官方有批量操作文档,但是注解方式官方没有提供任何批量操作的文档。所以,网上找了一下,然后自己试了试,记录一下。一、实体类先照着数据库写一个实体类吧public class ChatRecordDO implements Serializable { private...原创 2019-05-23 17:52:16 · 8540 阅读 · 0 评论 -
【造个轮子系列】之自定义验证码的 springboot starter
前言springboot很好用的原因之一就是它本身封装了好多starter,拿来就可以用,不用像SSM那样配置好多。所以,我们也可以自定义一个starter,造个小轮子,自己用。我就以验证码为例子。一、工厂模式验证码的样式多种多样,有静态的PNG格式的,有动态的GIF格式的。还有它的高度、宽度,字符串的长度也都可以改变。所以我们可以使用java设计模式中的工厂模式来生成不同的验证码。...原创 2019-05-20 17:44:16 · 1274 阅读 · 0 评论 -
(一)office文档操作之excel表格模板填充数据导出
前言java操作excel表格可以使用POI,但是我觉得这些太麻烦了。如果说我想实现合并单元格等操作,可能会更加麻烦。所以我就找到了Xdoc这个第三方API。一、XDOCXdoc官网:http://www.xdocin.com/index.html,具体的使用方法可以自己看看,我就不赘述了。一、excel模板在xdoc官网的最下方有一个关于excel的模板,可以下载模板、填充数...原创 2019-02-27 16:37:14 · 719 阅读 · 0 评论 -
SpringBoot前后端分离下使用shiro
前言很久之前就接触shiro了,那时候还停留在jsp,servlet阶段,后来到了ssm,web.xml里要配置好多东西。终于有一天,开启了SpringBoot的大门,前后端分离模式也就成了工作的内容。说实话,shiro原生不太支持前后端分离模式,源码里默认的登录页面是login.jsp,这就很尴尬了,不过,改一改还是能用的。本文主要讲的是如何在前后端分离的情况下使用shiro,而不是spri...原创 2018-12-18 17:55:20 · 4051 阅读 · 8 评论 -
【造个轮子系列】之保证RESTful接口数据的安全(一)AES加密解密
前言前后端分离的开发模式下,API是暴露给客户端(浏览器)的。如果不做任何访问限制,那么任何人都可以访问,更严重的是,如果返回的数据是明文的,那么爬虫可能就特别喜欢了。所以,API不仅要做访问限制,还要做数据的加密。本篇暂时说一下数据的加密,只是一些个人见解。一、统一数据返回格式前后端分离的开发模式下,要进行统一异常处理,其中要统一数据的返回格式,具体方法可参考慕课网课程:Spring...原创 2018-12-24 15:33:19 · 3978 阅读 · 0 评论 -
jcasbin——更轻量级的权限管理
前言作为一名后台开发人员,权限这个名词应该算是特别熟悉的了。就算是java里的类也有 public、private 等“权限”之分。之前项目里一直使用shiro作为权限管理的框架。说实话,shiro的确挺强大的,但是它也有很多不好的地方。shiro默认的登录地址还是login.jsp,前后端分离模式使用shiro还要重写好多类;手机端存储用户信息、保持登录状态等等,对shiro来说也是一个难题...原创 2019-01-03 17:28:41 · 16986 阅读 · 18 评论 -
Mybatis全注解开发——动态SQL
前言以前使用Mybatis的时候,使用XML文件来实现sql语句的书写。但是使用SpringBoot替代SSM以后,所有关于spring和其他的配置,SpringBoot全部默认配置好了。所以有没有一种方法来替代Mybatis的XML文件呢?那肯定是有的,就是mybatis自带的关于SQL的注解。但是有时候是需要根据不同的参数拼接SQL语句的,所以本篇主要介绍mybatis注解开发中的动态SQ...原创 2018-12-25 13:17:52 · 4982 阅读 · 12 评论 -
RESTful API 设计规范
前言RESTful API是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。一、基本要求1、URL地址中只包含名词,表示资源2、使用http动词表示动作,进行操作资源。二、HTTP动词1、常用的HTTP动词有下面五个(1)GET(SELECT):从服务器取出资源(一项或多项)。(2)POST(C...原创 2018-12-25 13:57:37 · 297 阅读 · 0 评论 -
工具类读取SpringBoot配置文件的配置内容
前言为了复用代码,我们要封装一些工具类。有时候工具类是需要一些动态的配置的,比如阿里云OSS对象存储的bucketName要能动态修改。我们可以把需要动态修改的内容放在application.properties配置文件里,然后用@Value注解读取配置信息。虽然可以动态修改配置了,但是在工具类的静态方法里是无法使用@Value读取到的配置信息的。所以,就要想办法让它可以使用。一、属性类...原创 2018-12-26 11:37:38 · 8496 阅读 · 5 评论 -
HTTP请求工具类,支持https
前言有时候后台需要请求其他的API来获取数据,springboot可以使用RestTemplate,但是在工具类里使用就有点麻烦了。所以就自定义一个http请求的工具类,来处理GET、POST、PUT、DELETE等请求。一、自定义工具类import java.io.UnsupportedEncodingException;import java.net.URLEncoder;...原创 2019-01-02 16:32:00 · 1212 阅读 · 0 评论 -
SpringBoot结合RabbitMQ基于延迟插件实现发送延迟消息
前言有很多场景需要延迟一段时间完成,例如订单超过一定时间未支付等。可以用定时任务实现,也可以用消息队列MQ来实现。近些时日,学了一些,记录一下。不再赘述rabbitMQ以及插件的安装, 3.5.7版本以后支持延迟插件。一、准备springboot结合rabbitMQ只需要添加jar包,配置一下就可以了。<dependency> <groupId>o...原创 2018-11-30 10:46:58 · 2049 阅读 · 10 评论