后台
文章平均质量分 70
Love_云宝儿
爱她~
展开
-
Springboot的全局异常数据格式处理
思路:定义类并注入spring容器 advice增强代码:package com.wangs.springbootdemo.controller;import com.wangs.springbootdemo.model.GlobeResponse;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframe原创 2022-04-29 11:34:12 · 285 阅读 · 1 评论 -
三种常见的限流算法
在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。本篇文章将会介绍一下常用的限流算法以及他们各自的特点。1、计数器算法计数器算法是限流算法里最简单也是最容易实现的一种算法。比如我们规定,对于A接口来说,我们1分钟的访问次数不能超过100个。那么我们可以这么做:在一开 始的时候,我们可以设置一个计数器counter,每当一个请求过来的时候,c转载 2021-11-11 10:59:14 · 178 阅读 · 0 评论 -
分布式ID的生成方案
分布式id的生成方案有哪些呢?最常见的就是UUID,数据库自增主键,redis自增id,雪花算法。 UUID UUID是通用唯一标识码的缩写,其目的是让分布式系统中的所有元素都有位移的辨识信息,而不需要通过中央控制器来指定唯一标识。 优点: 1.降低全局节点的压力,使得主键生成速度更快。 2.生成主键全局唯一。 3.跨服务器合并数据方便。因为UUID都是不一样的,所以进行数据合并的时候直接合起来就OK了。 缺点: 1.UUID占用16个字符,空间占用比较多。 2.不原创 2021-11-08 12:56:41 · 449 阅读 · 0 评论 -
高并发下的分布式缓存浅析
说到分布式缓存,我们不得不说到两个数据库--memcache、redis,曾经我们使用缓存一般使用memcache,现在我们一般使用redis。那为啥我们从memcache迁移到redis呢?因为redis比memcache更加优秀。memcache支持的类型比较单一,redis支持多种类型。数据库 支持数据类型 memcache 仅支持简单数据类型,比如string、int等,复杂数据类型需要转换成简单类型再存储(本人没用过,也不知道存啥类型)。 r...原创 2021-11-03 16:58:05 · 257 阅读 · 0 评论 -
修改Springboot的定制banner
在Springboot启动的时候会有一个默认图案,如下图所示:我们在src/main/resources下新建一个banner.txt通过http://patorjk.com/software/tagg网站生成字符,将字符复制到banner.txt中即可。banner.txt中内容是啥就会显示啥,随便你放什么。我放的我媳妇儿的名字,哈哈。...原创 2020-11-26 11:02:27 · 119 阅读 · 0 评论 -
单机结构、集群结构与分布式结构的区别
下面就正经解释下三种结构的区别吧~单机结构我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式,往下接着看。集群结构集群模式在程序猿界有各种装逼解释,有的让你根本无法理解,其实就是一个很简单..转载 2020-10-12 15:26:30 · 626 阅读 · 0 评论 -
Java中,将一个list赋值给另外一个list的四种方法(非地址)
将List A赋值给List B方式一:ArrayList B = new ArrayList<> (A);方式二:ArrayList B = A.clone();方式三:ArrayList B = new ArrayList<String>();B.addAll(A);方式四:for(String s: A){ B.add(s);}...转载 2020-09-09 15:37:07 · 6258 阅读 · 0 评论 -
公告、文章置顶操作的算法逻辑
从网上学习到的方法,加上和同学讨论到的结果需求:可以通过置顶排序新发布的文章可以在所有标识置顶的文章之后,按照发布时间排序实现逻辑:数据库字段中:1.发布时间和文章id应该是正相关的,所以默认是通过id来排序2.增加字段top做一个标识符,做为标识是否为置顶的文章,用于分类(置顶为1,没有置顶为0)默认为03.增加一个top_time字段,是一个时间戳,标识置顶的时间,默认为文章发布的时间取数据的时候排序规则为:ORDER BY top DESC, top_tim转载 2020-07-17 09:56:07 · 983 阅读 · 0 评论 -
使用Mybatis返回插入数据的自增主键
首先在Mybatis的xml加入useGeneratedKeys="true" keyProperty="userId"两条属性useGeneratedKeys默认是false,当设置为true时,会返回当前插入数据的主键值到入参的参数中;keyProperty:指定主键名称具体使用如下:<insert id="insertSelective" parameterType...原创 2020-03-11 11:53:46 · 241 阅读 · 0 评论 -
Jedis set 的四个重载方法详解
四个方法的定义如下:1、String set(String key, String value)2、String set(String key, String value, String nxxx) 3、String set(String key, String value, String nxxx, String expx, int time) 4、String ...原创 2020-01-09 10:54:56 · 4010 阅读 · 0 评论 -
新建的Springboot项目无法启动,也不报错,解决方式
新建的Springboot项目无法启动,也不报错?这是怎么回事?答案是缺少“spring-boot-starter-web”依赖如果你是使用的maven,那么在pom.xml中添加以下依赖,注意version要和你新建Springboot的版本一致:<!-- https://mvnrepository.com/artifact/org.springframework.boo...原创 2019-12-18 15:26:16 · 11138 阅读 · 4 评论 -
【SpringBoot学习第十三天】CORS支持----即跨域问题
今天我们来看一下Springboot的CORS支持。首先,什么是CORS?CORS指的是跨域问题,即跨域是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。比如说我们有两个Tomcat,一个是8070端口,一个是8071端口,如果想让两个Tomcat进行通信,那么是需要进行支持的。现在绝大多数的浏览器都已经支持了跨域问题,比如JSONP、或ifr...原创 2019-12-13 14:53:11 · 196 阅读 · 0 评论 -
SpringBoot入门到精通教程
由于博主在上班,不定时更新!Eclipse 创建 Spring boot项目及相关内容解释 新建demo Spring boot添加调试工具 将项目打包成jar包及相关必要条件解释 propertise配置文件 yaml配置文件 多环境配置 集成freemarker freemarker使用小结 集成thymeleaf 错误处理的三种方式 集成Servlet、Filter...原创 2019-12-11 11:07:02 · 153 阅读 · 1 评论 -
Java导入导出CSV文件,使用commons-csv
废话不多说,直接上代码但在上代码之前,首先需要准备一个csv文件,放入“D:/CSV”目录下,供导入解析数据使用首先添加依赖<!--导出CSV文件使用--><!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv --><dependency> <gro...原创 2019-12-09 15:25:08 · 2437 阅读 · 0 评论 -
Java导出Excel表格,可合并单元格,支持xls和xlsx格式
编程思路:创建Excel文件对象 创建一个或多个Sheet工作表 合并想要合并的单元格 创建行Row 根据行row获取单元格cell 给单元格赋值 导出添加依赖pom.xml的依赖<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><!--接收Excel对象使用-->&l...原创 2019-12-05 14:55:56 · 2188 阅读 · 0 评论 -
MyBatis的foreach标签解析
foreach元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。它也允许你指定开头与结尾的字符串以及在迭代结果之间放置分隔符。这个元素是很智能的,因此它不会偶然地附加多余的分隔符。注意:你可以将任何可迭代对象(如 List、Set 等)、Map 对象或者数组对象传递给foreach作为集合参数。当使用可迭代对象或者数组时,ind...原创 2019-12-03 17:48:56 · 818 阅读 · 0 评论 -
java解析前端js传递的Excel文件,含前后端代码
编程思路:前端input读取xls、xlsx的Excel文件; 使用js的formData封装文件和其他数据; 使用ajax请求发送到后台,注意:contentType和processData要设置成false; 后台使用MultipartFile接收文件,使用Workbook、Sheet、Row、Cell解析Excel; 使用ArrayList<ArrayList<Obj...原创 2019-12-03 16:24:33 · 4073 阅读 · 8 评论 -
js传递数组类型的数据,并在后端解析
代码思路:将数组类型的数据打包成json数据 使用JSON.stringfy(json)方法传递json数据 引入相关jar包 后台java解析json数据废话不多说,直接上代码:html代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> ...原创 2019-12-02 18:36:28 · 1981 阅读 · 0 评论 -
【Spring boot学习第一天】Eclipse 创建 Spring boot项目及相关内容解释
1.eclipse界面中HELP----Eclipse Marketplace2.在find框里面搜索“Spring tool suite”,点击“install”安装,下一步,下一步就完事了,这里不多说,注意安装和本地eclipse版本相同的工具。3.file--new--Spring starter project4.点击“next”,5.勾选“web”,点击...原创 2019-03-04 16:18:37 · 280 阅读 · 0 评论 -
【Spring boot学习第二天】Spring boot demo建立
接上一章1.创建Spring boot项目后,会默认创建一个入口文件,启动文件,Springboot内置Tomcat,无需配置Tomcat即可启动。1为自动创建文件,2中“SpringBootApplication”注解为Springboot的入口,告诉Spring boot项目入口在这里。2.我们新建一个Controller文件,添加Spring MVC的相关注解,由于我们建立Spr...原创 2019-03-04 17:07:01 · 205 阅读 · 0 评论 -
【Spring boot学习第三天】Spring boot添加调试工具
每次修改代码都要像Spring MVC一样重启Tomcat吗?不是的,我们可以在项目这加一个调试工具,那么每次修改保存后会自己重启了,这里实质是在pom.xml添加了一个依赖,或者我们在开始建立项目时,就可以添加这个devtools,如图所示:接下来我们试着发一些请求,使用rest风格:这里Controller应这么编写,这里的注解“PathVariable”...原创 2019-03-05 11:49:29 · 352 阅读 · 0 评论 -
【Spring boot学习第四天】将项目打包成jar包及相关必要条件解释
在工程中“右键”--“run as”--“Maven Build..” 在Goals中输入“clean package”,点击“run”运行 Build success后,刷新目录结构,在“target”目录下可以看到打包好的jar包生成了 然后我们到目录结构中使用“java -jar AMapServer-0.0.1-SNAPSHOT.jar”运行 运行成功后,我们访问一下,成功了“ht...原创 2019-03-07 14:44:28 · 231 阅读 · 0 评论 -
【Spring boot学习第五天】propertise配置文件
整个工程的配置文件在"src"--"main"--"resources"下的“application.properties”文件这里我们需要注意的是"${}"这个是大括号,而不是小括号,Tomcat配置端口直接用server.port=int类型的一个端口数值就可以了,接下来我们来看获取application.properties文件中的内容,打开controller,定义变量,使用@Valu...原创 2019-03-13 11:49:03 · 263 阅读 · 0 评论 -
【Spring boot学习第六天】yaml配置文件
yaml配置文件与properties配置文件类似,下面我们来看一下这两个配置文件的对比:上面是yaml,下面是propertiesyaml配置文件使用一个开头+冒号+空格,然后该头下面的属性另起一行进行配置,这里需要注意的是,每个冒号后面均要加一个空格,否则yaml配置文件不会生效。...原创 2019-03-14 15:59:05 · 215 阅读 · 0 评论 -
【Spring boot学习第七天】多环境配置
如何使用配置文件做到区分开发环境、测试环境?今天我们来介绍一下properties和yaml文件的配置。首先我们先来看properties文件的配置。我们首先来看【properties】配置文件在主配置文件中添加"spring.profiles.active=test"来配置,“test”对应的就是application-test.properties文件,这样我们再开启运行项目,...原创 2019-03-27 10:29:02 · 225 阅读 · 0 评论 -
【Spring boot学习第八天】集成freemarker
Spring boot集成【freemarker】,首先在pom.xml文件中添加freemarker的依赖,如下所示,这时候他会自动导入相关jar包<!-- 集成freemarker --><dependency> <groupId>org.springframework.boot</groupId> <artifac...原创 2019-04-15 18:30:19 · 296 阅读 · 0 评论 -
【Spring boot学习第九天】freemarker使用小结
1.修改freemarker默认模板位置在配置文件中添加freemarker的配置地址即可:spring.freemarker.template-loader-path=classpath:/web这样就相当于由原来template文件夹,改为了web文件夹,如图:2.使用webjar方式加载js和css文件这个类似于maven仓库,他可以把我们web开发需要的的js和c...原创 2019-05-06 10:23:46 · 511 阅读 · 0 评论 -
【Spring boot学习第十一天】错误处理的三种方式
springboot的错误处理有几种不同的方式,这里我们介绍三种最常见的方式,首先我们来看第一种。方法一:该方式会将一切错误页面引导至我们自定义的页面。我们将所有的错误映射到/error,然后自己实现ErrorController,当遇到错误时,后台会自动调用该实现ErrorController的控制器。首先我们在pom.xml中添加ErrorController的相关依赖(如果有...原创 2019-07-04 17:02:51 · 346 阅读 · 0 评论 -
【Spring boot学习第十二天】集成Servlet、Filter、Listener
这里我们推荐使用注解方式进行配置。首先我们在【主方法】上加入@ServletComponentScan注解,加上该注解后,会扫描项目中的Servlet、Filter、Listener。主方法:package com.wangs;import org.springframework.boot.SpringApplication;import org.springframework...原创 2019-07-15 15:19:59 · 147 阅读 · 2 评论 -
tomcat启动时,日志中文乱码问题
今天在搭环境启动tomcat时,出现如下乱码:03-Sep-2019 16:46:59.752 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [D:\software\apache-tomcat-8.5...原创 2019-09-03 16:52:38 · 679 阅读 · 0 评论 -
浅谈redis的单点模式、主从模式、哨兵模式和集群模式
最近换了单位用redis和nginx,对于像博主这样之前只听过其大名的菜鸟,深深的感觉到头大,经过几天的研究,对redis和nginx有了初步的了解,下面我们看一下redis的常见模式:单点模式、主从模式、哨兵模式和集群模式。【单点模式】 单点模式又称单节点模式,是最简单的Redis模式,就是一个redis实例,如果只是自己测试缓存或者小程序,数据量很小,仅仅做一个小型...转载 2019-09-05 09:36:26 · 6047 阅读 · 2 评论 -
Windows64位环境,搭建简易的redis哨兵模式
1.首先附上WindowX64的redis安装包:链接:https://pan.baidu.com/s/116EqtL0WfSJdxC4Tmcs82A提取码:ckal下载解压后我们看到的目录结构是这样的:2.我们在redis目录中新建三个“.conf”文件,分别命名为“redis6379.conf”,“redis6479.conf”,“redis6579.conf”,并将“redi...原创 2019-09-05 13:59:36 · 451 阅读 · 2 评论 -
oracle sql语言模糊查询--通配符like的使用教程
oracle在where子句中,可以对datetime、char、varchar字段类型的列用like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:% 零或者多个字符_ 单一任何字符(下划线)\ 特殊字符oracle10g以上支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INST...原创 2017-04-20 10:52:40 · 518 阅读 · 0 评论