自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java编码规范--OOP规约

说明:getObject()和get0bject()的问题,一个是大写字母O,一个是数字0,加上@Override可以准确的判断能否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。 这里的签名不是对接接口时候使用的加密算法生成的字符串,而是指的是方法名、入参、返回值这三项。 说明:推荐使用JDK7引入的工具类 java.util.Objects#equals(Object a,Object b)方法进行比较。 拓展:为啥呢??我们来看

2022-07-05 17:27:19 335 1

原创 Java编码规范--命名风格

为啥呢,因为这俩符号本身没啥意义。 另外其实$符号在js中应用是比较多的,_在Python中的应用是比较多的。不同的语言是有不同的理念的,但在Java中,这俩符号你写在前面或者后面是没啥意义的。 当然,当你定义常量的时候是可以用在中间的。 拓展:数字键盘上的~是表示“位非”操作,运算符,啥意思呢,就是首先将当前变量转换成二进制,然后所有位取反 比如原本是1,位非操作后就变成0,原本是0,位非操作后就是1。输出结果: 说明:正确的英文拼写和语法可以

2022-06-30 16:45:56 1540 1

原创 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 265 1

原创 restful风格编程知识补充

REST简介REST(Representational State Transfer),表现形式状态转换。单纯从上述的英文和中文,很难理解到底什么是rest,我们来看两个具体例子传统风格资源描述形式http://localhost:8080/users/getById?id=1 //获取id为1的用户信息http://localhost:8080/users/saveUser //存储用户信息REST风格描述形式http://localhost:8080/users/1 //获

2022-03-27 14:10:04 334 2

原创 idea中隐藏不想看的文件和文件夹

1.file--settings2.editor--file types-- ignored files and folder --+3.输入你想要忽略的文件或文件夹名 可以用*通配符比如我想忽略mvn等等 可以这样写完事点击ok 或者点击apply+ok即可非常清爽

2022-03-26 12:10:00 2264

转载 kafka和rabbitmq什么区别,各自适合什么场景

作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍一下基本的异步消息模式,然后再介绍一下RabbitMQ和Kafka以及他们的内部结构信息。第二部分(未完成)主要介...

2022-02-15 20:23:32 8080

原创 消息队列浅析

为什么要使用消息队列?我们以一个电商平台为例:用户下一个订单,那么接下来的后台动作将会有在数据库里创建一条订单数据 库存数减一 给用户加积分 给用户发优惠券无论是单体/分布式的微服务,这些流程一般都是同步进行的,如下图。但是同步的方式会存在一个问题:造成的系统开销--响应时间比较大的。2-5秒服务在同步的过程中,要保证每个服务都执行完,整个链路才执行完,因为网络等其它问题,整个链路成功执行完的成功率会受影响,会存在性能和稳定性的问题,导致用户体验较差。那么我们

2022-02-14 17:42:35 478

转载 浅谈Java Matcher对象中find()与matches()的区别。

前言最近接触正则时,有时候用find()去判断是否匹配,有时候用matches()来判断,那么什么时候该用哪一个呢?我带着这个问题去某娘上去寻找答案,但是这一块答案都比较散,而且有些答案不太好理解,甚至有些是错的,兜兜转转花了不少时间,所以我在这一块也做一个总结,给大家一个参考。find()与matches()的区别find():是否存在与该模式匹配的下一个子序列。简单来说就是在字符某部分匹配上模式就会返回true,同时匹配位置会记录到当前位置,再次调用时从该处匹配下一个。m...

2021-12-13 19:24:00 516 1

原创 Java设计模式之单例模式

首先,什么是单例模式。单例模式,项目中只需要一个实例存在,不需要也不能够通过代码new多个实例。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面看八中单例模式的写法:方法一:饿汉式/** * @Date 2021/11/19 15:21 * @Description 饿...

2021-11-22 11:17:57 224

转载 三种常见的限流算法

在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。本篇文章将会介绍一下常用的限流算法以及他们各自的特点。1、计数器算法计数器算法是限流算法里最简单也是最容易实现的一种算法。比如我们规定,对于A接口来说,我们1分钟的访问次数不能超过100个。那么我们可以这么做:在一开 始的时候,我们可以设置一个计数器counter,每当一个请求过来的时候,c

2021-11-11 10:59:14 155

原创 分布式ID的生成方案

分布式id的生成方案有哪些呢?最常见的就是UUID,数据库自增主键,redis自增id,雪花算法。 UUID UUID是通用唯一标识码的缩写,其目的是让分布式系统中的所有元素都有位移的辨识信息,而不需要通过中央控制器来指定唯一标识。 优点: 1.降低全局节点的压力,使得主键生成速度更快。 2.生成主键全局唯一。 3.跨服务器合并数据方便。因为UUID都是不一样的,所以进行数据合并的时候直接合起来就OK了。 缺点: 1.UUID占用16个字符,空间占用比较多。 2.不

2021-11-08 12:56:41 432

原创 高并发下的分布式缓存浅析

说到分布式缓存,我们不得不说到两个数据库--memcache、redis,曾经我们使用缓存一般使用memcache,现在我们一般使用redis。那为啥我们从memcache迁移到redis呢?因为redis比memcache更加优秀。memcache支持的类型比较单一,redis支持多种类型。数据库 支持数据类型 memcache 仅支持简单数据类型,比如string、int等,复杂数据类型需要转换成简单类型再存储(本人没用过,也不知道存啥类型)。 r...

2021-11-03 16:58:05 229

原创 Vue的v-bind的使用方式

当我们希望dom的某些属性也动态绑定的时候。比如动态绑定a元素的href

2021-06-01 20:41:43 249

原创 Vue的常用指令

1.v-onceonce是一次的意思。vue是响应式的编程。有的人可能就会问,什么是响应式编程??所谓响应式编程简单的来说就是页面显示随着数据的变化而变化。也就是说,当vue中大data属性中的变量值变化时,页面显示也会随着变,看下面的图HTML代码:<html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.j

2021-05-26 18:13:16 217 2

原创 Vue的mustache语法简介与举例

mustache语法实际上就是我们说的双大括号。mustache英文含义是 胡子/胡须,所以你不觉得双大括号有点像胡须吗?准备直接上代码,里面有注释,自己看,哈哈<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue/dis

2021-05-24 20:07:21 464 1

原创 Vue的生命周期简述

首先,什么是生命周期?我个人的理解就是:一个事物从诞生到消亡的过程

2021-05-24 13:10:38 175 3

原创 理解Vue的options选项

首先,啥是vue的options?vue的option即为你 new vue({});大括号内的东西,统称为options。我们在创建Vue实例的时候,会传入一个对象options,上篇文章中讲到了options对象的属性,如el、data、methods,这些就是option,如下图所示:---补充一个知识点,const是es6语法中来定义常量,let用定义变量,es6语法之前,统一使用var来定义。回归正题,那这些option中可以包含哪些选项呢?可以看官网,哈哈,官网链接给你:ht

2021-05-23 18:28:44 9552

原创 vue.js的简单应用

首先我们新建一个vue项目,引入vue.jsvue.js可以直接去官网下载:官网地址:https://cn.vuejs.org/v2/guide/installation.html,你可以下载任何一个版本,当然,你也可以直接引入cdn的路径。如下图所示:然后我们新建一个demo,双大括号为vue的取值方式。<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title

2021-05-20 12:54:52 618 3

原创 信息系统项目管理师软考笔记

1.几种常见的商业模式:O2O,是Online To Offline的缩写即在线离线/线上到线下,是指将线下的商务机会与互联网结合,让互联网成为线下交易的平台,这个概念最早来源于美国。 B2B(也有写成 BTB,是Business-to-Business的缩写)是指企业与企业之间通过专用网络或Internet,进行数据信息的交换、传递,开展交易活动的商业模式。 B2G(business-to-government,企业与政府机构间的电子商务)B2G模式即企业与政府之间通过网络所进行的交易活动的运作.

2021-03-05 17:28:18 231 3

原创 杂七杂八的知识,非技术类,考教资、公务员可看

1.外交的三个等级:大使、公使、代办。对应的机构为大使馆、公使馆、代办处。

2020-12-02 14:46:30 172

原创 修改Springboot的定制banner

在Springboot启动的时候会有一个默认图案,如下图所示:我们在src/main/resources下新建一个banner.txt通过http://patorjk.com/software/tagg网站生成字符,将字符复制到banner.txt中即可。banner.txt中内容是啥就会显示啥,随便你放什么。我放的我媳妇儿的名字,哈哈。...

2020-11-26 11:02:27 86

转载 单机结构、集群结构与分布式结构的区别

下面就正经解释下三种结构的区别吧~单机结构我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。那么,单机结构有啥缺点呢?我想缺点是显而易见的,单机的处理能力毕竟是有限的,当你的业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式,往下接着看。集群结构集群模式在程序猿界有各种装逼解释,有的让你根本无法理解,其实就是一个很简单..

2020-10-12 15:26:30 566

原创 使div或img在滚动条滚动时,始终居中在屏幕中间

直接上代码<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <meta name="format-detection" content="telphone=no, email=no"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,

2020-09-28 15:56:10 2580

转载 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 6035

转载 公告、文章置顶操作的算法逻辑

从网上学习到的方法,加上和同学讨论到的结果需求:可以通过置顶排序新发布的文章可以在所有标识置顶的文章之后,按照发布时间排序实现逻辑:数据库字段中:1.发布时间和文章id应该是正相关的,所以默认是通过id来排序2.增加字段top做一个标识符,做为标识是否为置顶的文章,用于分类(置顶为1,没有置顶为0)默认为03.增加一个top_time字段,是一个时间戳,标识置顶的时间,默认为文章发布的时间取数据的时候排序规则为:ORDER BY top DESC, top_tim

2020-07-17 09:56:07 897

原创 mysql常用总结

1.限制结果SELECT语句返回所有匹配的行,他们可能是指定表中的每个行。为了返回第一行或前几行,可以使用LIMIT字句。下面举一个例子:SELECT product_name FROM products LIMIT 5;分析:此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回不多于5行。换句话说,就是检索前5行。为了得出下一个5行,也可指定检索的开始行和行数...

2020-07-13 15:08:39 105

原创 使用Mybatis返回插入数据的自增主键

首先在Mybatis的xml加入useGeneratedKeys="true" keyProperty="userId"两条属性useGeneratedKeys默认是false,当设置为true时,会返回当前插入数据的主键值到入参的参数中;keyProperty:指定主键名称具体使用如下:<insert id="insertSelective" parameterType...

2020-03-11 11:53:46 215

原创 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 3838

原创 新建的Springboot项目无法启动,也不报错,解决方式

新建的Springboot项目无法启动,也不报错?这是怎么回事?答案是缺少“spring-boot-starter-web”依赖如果你是使用的maven,那么在pom.xml中添加以下依赖,注意version要和你新建Springboot的版本一致:<!-- https://mvnrepository.com/artifact/org.springframework.boo...

2019-12-18 15:26:16 10864 4

原创 【SpringBoot学习第十三天】CORS支持----即跨域问题

今天我们来看一下Springboot的CORS支持。首先,什么是CORS?CORS指的是跨域问题,即跨域是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。比如说我们有两个Tomcat,一个是8070端口,一个是8071端口,如果想让两个Tomcat进行通信,那么是需要进行支持的。现在绝大多数的浏览器都已经支持了跨域问题,比如JSONP、或ifr...

2019-12-13 14:53:11 173

原创 SpringBoot入门到精通教程

由于博主在上班,不定时更新!Eclipse 创建 Spring boot项目及相关内容解释 新建demo Spring boot添加调试工具 将项目打包成jar包及相关必要条件解释 propertise配置文件 yaml配置文件 多环境配置 集成freemarker freemarker使用小结 集成thymeleaf 错误处理的三种方式 集成Servlet、Filter...

2019-12-11 11:07:02 138 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 2321

原创 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 2086

转载 ajax完整参数详解

jQuery中的ajax方法参数url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。type:要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。timeout:要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup...

2019-12-03 17:55:51 804

原创 MyBatis的foreach标签解析

foreach元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。它也允许你指定开头与结尾的字符串以及在迭代结果之间放置分隔符。这个元素是很智能的,因此它不会偶然地附加多余的分隔符。注意:你可以将任何可迭代对象(如 List、Set 等)、Map 对象或者数组对象传递给foreach作为集合参数。当使用可迭代对象或者数组时,ind...

2019-12-03 17:48:56 789

转载 纯JS解析Excel文件,复制可用

代码复制可用,如需xlsx.full.min.js的话,只需将src放至浏览器中,即可获得源码。html代码:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title> 解析Excel文件 </title> </head>...

2019-12-03 16:41:43 442

原创 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 3905 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 1941

原创 默认客户端redis-cli对Redis的一些基本操作

启动Redis的过程请参考前几篇博客,这里我们只介绍一些基本操作。redis是“key-value”类型的NoSQL,我们redis-cli能操作的就是String类型的key和多种类型的value(一般是string、list、set、zset、hash五种类型)。但实际上放入value中 的都是String类型,之所以会产生上述五种类型是因为,redis内部将value值组织成各种数据类型...

2019-11-21 23:05:12 186

原创 Redis设置密码访问

Redis设置密码有两种方式:方法一:通过命令动态调整密码config set requirepass 123456 //将密码设置为123456config set requirepass "" //将密码清空auth 123456 //验证密码config set命令可以动态的调整Redis服务器的配置而无需重启,重启后失效。也就是说,这种方式只能一次使用,关闭dos窗口...

2019-11-19 18:11:44 382

mybatis-spring-1.2.2

mybatis-spring-1.2.2

2017-06-19

MySQL5.5安装包

MySQL5.5安装包安装版

2017-03-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除