![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot
热水养鲨鱼
往事随风
展开
-
easyExcel合并单元格导出
*** 自定义合并策略 该类继承了AbstractMergeStrategy抽象合并策略,需要重写merge()方法**//*** 分组,每几行合并一次*//*** 目标合并列index*//*** 需要开始合并单元格的首行index*//*** @param exportDataList exportDataList为待合并目标列的值* @param targetColumnIndex 需要合并的列*/@Override。原创 2023-09-05 16:39:34 · 1842 阅读 · 0 评论 -
Spring-Validation校验参数
Spring-Validation校验参数全方面使用参数校验工具//被注释的元素,值必须是一个字符串,不能为null,且调用trim()后,长度必须大于0@NotBlank(message="")//被注释的元素,值不能为null,但可以为"空",用于基本数据类型的非空校验上,而且被其标注的字段可以使用@size、@Max、@Min等对字段数值进行大小的控制@NotNull(message="")//被注释的的元素,值不能为null,且长度必须大于0,一般用在集合类上面@...原创 2020-11-20 00:34:33 · 1680 阅读 · 0 评论 -
实现读写分离SpringBoot+MyBatis+Druid
实现读写分离SpringBoot+MyBatis+Druid1.读写分离概念理解读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP。然而,应用程序层面去做读写分离最大的弱点原创 2020-11-16 03:13:48 · 1774 阅读 · 0 评论 -
API接口-假定时间内限制访问次数-限频率
API接口-假定时间内限制访问次数-限频率在实际项目中,往往需要对一些公开的接口进行限制在一定时间内的访问次数,避免他人的恶意攻击占用系统资源。方案:设置拦截器,每次访问记录ip地址+访问URL作为key,使用redis按key查询是否有访问记录。如果未有访问redis记录,redis记录这次访问,如果redis查询到有访问次数,比较系统限制次数是否大于现在访问次数,大于则放行,小于等于则拒绝。(redis存储带过期时间,过期后自动清除) String key = IpU原创 2020-11-15 18:02:02 · 3027 阅读 · 1 评论 -
ip2region离线IP地址定位库,给你的日志AOP加上个地址定位
ip2region离线IP地址定位库,给你的日志AOP加上个地址定位Ip2region是什么?ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法标准化的数据格式每条ip数据段都固定了格式:_城市Id|国家|区域|省份|城市|ISP_只有中国的数据精确到了城市,其他国家有部分数据只能定位到国原创 2020-11-14 14:37:10 · 478 阅读 · 0 评论 -
利用AOP做一个完善的日志LogAspect切入以SpringBoot为框架基础
利用AOP做一个完善的日志LogAspect切入以SpringBoot为框架基础日常的记录日志,不会还有人还在每个方法都重复书写log.info log....,还有些更初级的sout 哈哈哈,我们要学会用Spring中的利器,那就是AOP思想,替我们把这些重复的工作做了。AOP思想其实我们接触得很多了,像日志记录,权限控制,事务管理啊,基本都用过,里面运用的核心就是AOP。具体AOP详细的介绍和使用我这里就不赘述了,网上有很多资料。今天我想学做个比较细致些的日志记录方式以SpringBo.原创 2020-11-13 21:37:53 · 1069 阅读 · 0 评论 -
Spring Boot-多环境配置文件切换
Spring Boot-多环境配置文件切换在代码中新增多个配置文件,文件名可以是application-{profile}.properties,然后在applcation.properties文件中配置激活profile。applcation.properties - 公共配置application-dev.properties - 开发环境配置application-prod.properties - 生产环境配置1、配置文件激活在applcation.properties文件原创 2020-11-11 23:49:45 · 174 阅读 · 0 评论 -
WebSocket在SpringBoot中的小应用
WebSocket 简介WebSocket 协议是基于 TCP 的一种新的网络协议,它实现了浏览器与服务器全双工(full-duplex)通信—允许服务器主动发送信息给客户端,这样就可以实现从客户端发送消息到服务器,而服务器又可以转发消息到客户端,这样就能够实现客户端之间的交互。对于 WebSocket 的开发,Spring 也提供了良好的支持,目前很多浏览器已经实现了 WebSocket 协议,但是依旧存在着很多浏览器没有实现该协议,为了兼容那些没有实现该协议的浏览器,往往还需要通过 ST原创 2020-11-10 18:50:58 · 98 阅读 · 0 评论 -
为SpringBoot写一个简单的Response返回数据处理
{"data":{"id":"1","name":"jack"},"code":200,"message":"success"}为SpringBoot写一个简单的Response返回数据处理对于每次的数据返回处理,是不是很厌烦,每次都要封装对象,形成统一的返回格式 return ResultVO.success(i);这次通过aop思想统一处理@ControllerAdvice ,这个注解,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面..原创 2020-11-09 20:21:30 · 12955 阅读 · 1 评论 -
Springboot使用RedisTemplate
Spring引入了对Cache的支持Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。 使用Spring...原创 2020-08-21 17:42:40 · 679 阅读 · 0 评论 -
SpringMvc参数校验Validator
jsr(Java Specification Requests) Java 规范提案 说到jsr我们就得先了解下什么是JCP(Java Community Process)? JCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。 JSR 它是指向JCP提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,(如果你觉得自己牛逼你也可以提交一个) 以向Java平台增添新的API和服务。JSR已成为原创 2020-07-09 12:04:54 · 175 阅读 · 0 评论 -
SwaggerAPI注解式文档生成,节省你的接口文档书写时间
Spring Boot能够快速开发、便捷部署等特性,Spring Boot会用来构建RESTful API。我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。1.添加Swagger2依赖在pom.xml中加入Swagger2的依赖 <!-- swagger --> <dependency> <groupId原创 2020-06-27 23:21:55 · 730 阅读 · 0 评论 -
Swagger2API注解式文档-----基本注解
基本的注解走起吧!!!@Api:用在请求的类上,表示对类的说明tags:说明该类的作用description:可描述描述该类作用@Api(tags = "系统:系统授权接口")@Slf4j@RestController@RequestMapping("/auth")public class AuthController {@ApiImplicitParams:用在请求的方法上,表示一组参数说明@ApiImplicitParam:用在@ApiImplicitParams注解原创 2020-06-27 23:01:11 · 348 阅读 · 0 评论 -
SpringBoot怎么实现跨域?这是前后端分离的一大点
SpringBoot实现跨域同源策略:判断是否是同源的,主要看这三点,协议,ip,端口。同源策略就是浏览器出于网站安全性的考虑,限制不同源之间的资源相互访问的一种政策。比如在域名https://www.baidu.com下,脚本不能够访问https://www.sina.com源下的资源,否则将会被浏览器拦截。跨域拦截是前端请求已经发出,并且在后端返回响应时检查相关参数,是否允许接收后端请求。在微服务开发中,一个系统包含多个微服务,会存在跨域请求的场景。方式一、最简单方法加注解 ,让原创 2020-06-06 21:14:12 · 220 阅读 · 0 评论 -
比分布式数据库中间件低一级的-Springboot+Mybatis+Druid配置多数据源
Springboot+Mybatis+Druid配置多数据源多数据源,复杂的就直接上分布式数据库中间件,简单的考虑多数据源。一、导个包先<?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=原创 2020-06-03 02:17:15 · 192 阅读 · 2 评论 -
SpringBoot整合mybatis-generator
SpringBoot整合mybatis-generator一、导包<?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="http://maven.apache.org/POM/4.0.0.原创 2020-05-21 23:18:38 · 117 阅读 · 0 评论 -
啥这么暴力?就这?SpringBoot整合druid数据源的两种方式
万变不离其宗1、导入包2、配置参数3、配置config类一、引入pom <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency原创 2020-05-20 16:48:35 · 188 阅读 · 0 评论