自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 收藏
  • 关注

原创 SpringCloud Alibaba Sentinel

目录安装sentinel给服务添加sentinel控制台的使用 sentinel是阿里开源的一个流量控制框架。 安装sentinelsentinel是一个轻量级的容错框架,提供限流、降级、熔断功能。下载jar包,启动,默认端口8080,访问 localhost:8080 进入控制台,默认用户名、密码都是 sentinel 给服务添加sentinelsentinel默认使用懒加载,添加sentinel后,需要访问1次该服务节点,sentinel控制台才有该服务节

2021-01-21 23:08:26 11

原创 SpringCloud Alibaba Nacos

目录 springcloud alibaba是springcloud的子项目

2021-01-21 22:48:43 18

原创 Knife4j使用指南

目录springboot整合knife4jspringcloud zuul聚合接口文档springcloud getway聚合接口文档 knife4j是swagger的增强版,更契合微服务架构,ui前身是swagger-bootstrap-ui,api注解的使用方式和swagger一致。 springboot整合knife4j依赖<!-- 包含了ui界面 --><dependency> <groupId>com.github.xi

2020-12-29 21:03:50 306

原创 WebSocket实现实时查看服务器日志

 pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId&

2020-12-26 18:53:32 59 1

原创 MyBatis Plus的使用

目录mp简介springboot整合mpBaseMapperQueryWrapper分页更新删除总结 mp简介mybatis的优点自己写sql语句,更灵活,可通过sql调优提升性能业务逻辑与数据访问逻辑分离(sql语句与java代码分离),易于阅读、维护可编写动态sql mybatis的缺点需要编写大量的sql语句,开发速度略慢一些常用功能没有提供实现,例如分页(但mybatis支持第三方插件) mp在MyBatis的基础上只做增强、不做改变,保

2020-12-20 19:25:58 59

原创 SpringCloud 服务调用监控 Hystrix Dashboard、Turbine

目录概述hystrix dashboard的使用turbine的使用说明 概述actuator可以监控应用状态,但数据展示不直观,springboot admin、hystrix dashboard、turbine都集成了actuator,并提供了UI界面来展示应用状态。 springboot admin、hystrix dashboard、turbine都可以监控应用,但监控的维度不同springboot admin:关注应用本身的状态,可以监控所有服务,可以看到cpu、

2020-12-17 22:29:40 28

原创 SpringBoot Admin 应用监控

目录监控普通的springboot应用admin serveradmin client监控微服务eureka serveradmin serveradmin client说明 springboot actuator可以监控springboot应用,但actuator输出的信息不友好,springboot admin集成了actuator,将actuator获取到的应用数据可视化地展示出来,更加直观。springboot admin是codecentric公司的开源项目,并非官方组件,分为se

2020-12-15 23:01:23 105

原创 Spring Data JPA的使用

目录jpa简介springboot整合jpa依赖yml实体类dao层关联关系的表达一对一一对多多对多总结 jpa简介spring data是spring家族成员之一,旨在简化数据访问层的开发,给操作sql、nosql提供了一系列组件,常用的比如spring data jpa:整合关系数据库,可作为mybatis之外的另一种选择spring data redis:整合redisspring data mongodb:整合mongodbspring data elasticsearch

2020-12-14 21:00:43 49

原创 本地缓存的使用

目录缓存概述springboot整合caffeinespring缓存注解的使用springboot整合ehcache 缓存概述对于访问频率高、一段时间内变动频率低的数据,可以加缓存,以缓解服务器cpu、数据库的压力。如果数据库连接池max-active设置很大但还经常报连接不够,可以考虑缓存部分结果集。 缓存可分为2大类本地缓存:速度快、效率高,但分布式环境下容易出现数据不一致的问题、且缓存的数据量一般不能太大,常见的比如guava、ehcache、caffeine分布式

2020-12-13 16:17:44 47

原创 MyBatis 一级缓存、二级缓存

目录一级缓存二级缓存 一级缓存@Autowiredprivate SqlSessionFactory sqlSessionFactory;public void test() { SqlSession sqlSession = sqlSessionFactory.openSession(); //分页参数 RowBounds rowBounds1 = new RowBounds(0, 5); RowBounds rowBounds2 = new Row

2020-12-12 20:05:58 32

原创 前后端分离的项目部署

目录 1、pom.xml加thymeleaf的依赖2、controller写个方法跳转到index.html3、resource下新建static,放index.html、图标,其它静态文件把打好的包拷过来打包时jar、war都行 vue静态资源目录:src/assets下新建css文件夹、img文件夹、js文件夹,引入是@/xxxx/xx,@代表assets目录。 js的模块化开发:expost 暴露出去import引入,如果导入整个js文件,可以缺省

2020-11-28 21:56:21 57

原创 分布式事务的基本概念

目录 分布式事务实现的几种模式:消息驱动、事件溯源、TCC基于消息驱动的springcloud微服务系统:Event Sourcing事务的原则和实现:sql方式、jdbc方式spring事务实现:JPA、JMS、JTAspring的分布式事务实现:JTA、非JTA 事务:是一种可靠、一致的方式,访问和操作数据库中数据的程序单元。事务的操作对象是数据库。事务的四大特性A:原子性C:一致性I:隔离性D:持久性。事务提交后数据库中的数据才会更改,未提交时数据库中

2020-11-28 21:19:05 29

原创 SpringBoot 日志设置

目录logback简介logback常用配置logback+slf4j输出日志信息 logback简介日志的作用便于分析程序执行过程方便调试可以将业务数据存储到文件、数据库、es,便于统计分析常见的日志组件:log4j、logback、slf4j、commons-logging。日志框架的选择对性能有一定影响,尤其是需要大量使用日志的项目。springboot2.x默认使用logback,logback是在log4j的基础上改进而来的,logback只是将信息输出日志到控制台、

2020-11-25 23:03:22 70

原创 使用外置tomcat部署springboot项目、tomcat的部署配置

目录springboot项目配置tomcat配置配置端口修改tomcat的默认部署目录(可选) springboot的web项目默认内置了tomcat,可以打包为jar,java -jar以内置tomcat运行;也可以打包为war,用外置tomcat运行。jar包含了所需的全部依赖、配置,文件体积较大,可直接运行,正式服很少变动,常用jar;测试服调试时,经常只替换少数文件,常打成war包,使用外置tomcat运行,以减小替换时上传到测试服的文件体积。 springboot项目

2020-11-25 21:53:32 145

原创 Java 自定义注解

目录声明注解使用AOP实现注解使用注解 注解常用于修饰类、成员变量、成员方法、形参,从而在编译、运行时自动做一些处理。 声明注解annotation.UploadObs@Target(ElementType.METHOD) //作用对象。完整写法示例 @Target(value = {ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME) //作用时机@Documented

2020-11-22 20:16:48 23

原创 SpringBoot整合Validation进行参数校验

目录依赖在controller中校验接收到的参数Validation常用注解 spring、lombok提供了一些参数校验的注解,比如@Nullable、@NonNull ,但比较鸡肋,常用Validation的注解来校验controller接收到的参数。以springboot整合validation为例。 依赖<dependency> <groupId>org.springframework.boot</groupId>

2020-11-22 15:21:30 78 2

原创 SpringBoot整合ElasticSearch

目录pom.xmlyml实体类dao使用示例 pom.xmlNoSQL -> 勾选Spring Data Elasticsearch (Access+Driver),也可以手动添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifact

2020-10-23 23:12:51 40

原创 ElasticSearch 集群搭建、工作原理

目录概述搭建es集群kibana连接es集群分片管理查看集群信息文档读写过程写操作读操作es中的乐观锁倒排索引analyzer 分词器 概述es为什么要集群?(集群的作用)高可用。高可用(High Availability)是分布式系统必须考虑的因素之一,实质是减少系统不能提供服务的时间。eg. 系统每运行100个时间单位,会有1个时间单位无法提供服务,则该系统的可用性是99%。负载均衡:将流量分散到多个节点上,减轻单个节点的压力提高整个系统的性能 es天

2020-10-22 23:52:24 246

原创 ElasticSearch 文档检索、查询建议、数据聚合

目录结构化搜索term 单词匹配(单个值)terms 单词匹配(多个值)range 范围查询exists 存在查询、miss 缺失查询ids id匹配prefix 前缀匹配wildcard 通配符匹配regexp 正则匹配全文搜索match_all 获取全部文档match 全文检索multi_match 在多个字段中检索match_phrase 短语搜索match_phrase_prefix 文本短语搜索term、match的比较bool 布尔查询query_string 查询字符串分词器分词器简介分词

2020-10-22 23:24:55 125 2

原创 ElasticSearch index、mapping、document操作,字段类型

目录基本概念index操作mapping操作document操作bulk 批量插入、修改文档refresh 刷新数据索引别名的使用reindex 重建索引字段类型核心数据类型复杂数据类型专用数据类型 基本概念index:索引,可以理解为关系数据库中的数据库type: 可以理解为关系数据库中的表,5.x⼀个index中可以新建多个type,6.x⼀个index中只能新建⼀个type,7.x只能使用内置的_doc,不能新建type。5.x、6.x、7.x都有内置的type _doc。map

2020-10-11 23:21:50 135

原创 ElasticSearch、Kibana的下载安装、启动停止

目录概述全文索引ES简介ES的下载、安装、启动win版安装、启动linux版安装linux版启动Kibana的安装、启动ES常见的调试方式Kibana的安装Kibana的启动、停止Kibana的使用使用kibana的常见问题 概述全文索引数据可分为2类结构化数据:格式固定、有长度限制,一般用关系数据库来存储。非结构化数据:无固定格式、不限制长度,eg. 邮件内容、word⽂档内容。 非结构化数据的2种处理方式顺序扫描:从前往后依次扫描,eg. 在一篇文章中搜索“j

2020-10-11 22:46:33 118 2

原创 常用的小API

目录UUID文件防重名MD5加密Spring自带的2个工具类StringUtils、ObjectUtilsApache的工具类StringUtilsFileUtils 从网上下载文件 UUID文件防重名UUID可以保证在同一个文件系统中,产生唯一的随机字符串。UUID.randomUUID().toString()//如果要拼接String,则不必toString(),会自动转换为StringUUID.randomUUID()+"" MD5加密md5加密实现方式很多

2020-09-30 22:23:28 191

原创 Java爬虫框架 jsoup

目录依赖使用示例 jsoup是java的一个网页内容解析工具,可以用来写爬虫。 依赖<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version></dependency> 使用示例//抓取页面,可指定请求方

2020-09-29 23:29:30 194

原创 二维码的生成、解析

目录概述前端生成二维码qrcode.jsjquery.qrcode.js后端生成二维码(zxing)依赖前端后端 概述前后端都方便做的时候,交给前端来做后端可以用java生成二维码,前端可以用js生成二维码,如果要保存到服务器,那就后端生成二维码;如果是一次性的、图片不需要保存到服务器,那就前端生成二维码。后端实现,多个用户同时操作时会加重服务器的负担;前段实现,由用户浏览器完成操作,可以减轻服务器压力。前端生成二维码也比后端要简单一些。最好是前端传递参数,后端做相应处理返回给前端数据,

2020-09-29 23:13:46 196

原创 富文本编辑器KindEditor

目录下载引入前端使用KindEditor后端处理表单ajax KindEditor是一个富文本编辑器,官网地址:http://kindeditor.net/demo.php 下载引入 http://www.kindsoft.net/down.php删掉asp、asp.net、jsp、phplang里面只保留zh-CN.js语言只使用简体中文themes里删掉qq、simple我只使用默认的主题default,qq、simple这2种主题都不用,也可以保留

2020-09-28 23:04:25 244

原创 富文本编辑器wangEditor

目录下载引入基本使用说明 wangEditor是一个轻量级的富文本编辑器,相比KindEditor十分简洁,但不兼容移动端浏览器,偏后端。官网地址:http://www.wangeditor.com/ 下载引入方式一   使用cdn<script src="https://cdn.bootcdn.net/ajax/libs/wangEditor/3.1.1/wangEditor.min.js"></script> 方式二   自己下载

2020-09-28 22:35:21 189

原创 数据表的设计

 涉及到财物的字段,一律使用decimaleg. decimal(20,2)   总长度20位,小数部分2位float、double表示浮点数有误差,decimal是定点型,可以准确表示浮点数。 可枚举的字段,定义为tinyinteg. tinyint(1) ,tinyint(2)性别、用户角色、权限、支付方式、商品类别等字段都是可枚举的,存储为tinyint可以节约数据库空间 分类表eg. 商品类别、菜单项、用户角色、用户权限只有一级类目时可

2020-09-28 22:08:35 235

原创 Spring Session的使用

 spring session可以将session存储到redis、关系数据库等介质中,从而实现分布式session,且可以提供restful风格的sessionId。session常用的存储介质是redis。 springboot整合spring session依赖Web -> 勾选Spring Session,NoSQL -> Spring Data Redis(Access+Driver),也可以手动添加依赖<dependency> &

2020-09-28 21:51:48 173

原创 生成验证码

目录前端自己绘制验证码图片kaptcha 验证码常见的实现方式有2种自己写代码绘制验证码图片使用google的开源工具kaptcha,生成验证码的主流方式,简单强大 前端<form action="/user/login" method="post"> <div> 请输入验证码:<input type="text" name="captcha" /> <img id="captchaIma

2020-09-28 00:04:33 195

原创 Java操作excel

目录概述前端上传excel文件导出数据为excel文件后端使用POI操作excel依赖解析上传的excel文件写的基本操作导出数据到excel文件中后端使用EasyExcel操作excel依赖实体类监听器controller 概述操作excel的主流方式有3种JXL 很耗内存POI 操作excel的主流方式,可以操作office的全套文档,eg. excel、ppt、word、outlook,虽然在一定程度上可以减少内存占用,但内存占用依旧不低EasyExcel JXL、POI内存占

2020-09-27 23:34:57 356

原创 Layui的使用

 Layui是一个模块化的前端UI框架,信仰返璞归真,使用原生html、css、js编写,偏后端、PC端。Layui的特点是美观、轻量级,Bootstrap的特点是简单、稳定。 Layui的使用需要引入2个文件 layui.css、layui.js<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <link rel="stylesheet" t

2020-09-24 00:17:03 176

原创 Quartz的使用

目录Quartz简介Quartz的使用外部传入参数给Job使用成员变量+setter方法Trigger 触发器ScheduleQuartz的配置文件Quartz的作业存储类型SpringBoot整合Quartz quartz是一个专业、强大的任务调度框架。 Quartz简介quartz的特点强大的调度功能持久化机制,可以保存调度现场,即使系统发生故障,也能恢复调度现场,数据不会丢失灵活的应用方式支持集群、分布式 quartz的3个核心概念任务 Jo

2020-09-05 20:48:53 206

原创 HttpClient的使用

目录HttpClient简介HttpClient的使用依赖不携带参数携带参数之get方式携带参数之post方式 HttpClient简介HttpClient用于发起http请求并接收响应,调用第三方接口时经常要发起http请求,这就要用到HttpClient。有的框架已经封装了HttpClient,eg. SpringCloud。HttpClient支持get、post、put、delete等多种请求方式,支持http、https请求。 HttpClient的使用依赖&l

2020-08-31 21:23:09 191

原创 Netty使用指南

目录netty的使用netty的核心模块线程模型EventLoop、EventLoopGroup启动引导类Bootstrap通道Channel缓冲ByteBuf编码、解码tcp粘包、拆包现象发生原因解决方案netty用到的设计模式构建万量级连接的注意点互联网架构之数据链路分析 netty用于应用之间的网络通信,eg. dubbo的2个服务之间使用netty通信,交换数据。netty和传统的http通信一样分为客户端、服务端2部分,客户端发送数据,服务端接收、处理数据,很多时候一个应用既是客户

2020-08-31 20:56:53 235

原创 NIO中的Buffer、Channel、Charset、Files

目录Buffer 缓冲Channel 管道Charset 编码、解码Files 操作文件的工具类 Buffer 缓冲缓冲,用于批量读写数据。Buffer是抽象类,最常用的实现类是ByteBuffer、CharBuffer。 使用流程//创建指定容量的BufferCharBuffer charBuffer = CharBuffer.allocate(10);//往Buufer中放数据charBuffer.put("ABCD");//调整指针,准备好数据charB

2020-08-31 20:28:52 215

原创 网络编程相关概念

目录网络编程中的五种I/O模型NIO简介Netty简介编码、解码 网络编程中的五种I/O模型内存空间分为2部分内核空间:提供给操作系统使用用户空间:提供给用户程序使用 IO操作分为2步向操作系统发起IO请求,等待数据准备好(文件 -> 内核 -> 进程)实际IO操作内核空间、用户空间是中文翻译的,原文是把数据从内核复制到进程中。 网络编程中的五种I/O模型1、阻塞式IO当前线程发起系统调用(向操作系统发起IO请求) -> 当

2020-08-31 19:53:42 217

原创 解决请求跨域问题

目录跨域常见的几种情况跨域常用的解决方案前端vue解决axios的跨域问题后端springboot解决跨域问题 跨域常见的几种情况域名不同,eg. www.baidu.com、www.mall.baidu.com使用的端口不同,eg. 80、8080使用的协议不同,eg. http、https 跨域常用的解决方案跨域的解决方案很多,可以在前端解决,也可以在后端解决。 前端vue解决axios的跨域问题1、main.js//axios请求的默认前缀a

2020-08-31 19:28:58 198

原创 MySQL 查询指定时间范围内的数据

 时间字段名均不引 当天SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) = TO_DAYS(NOW()); 几天前-- 昨天。几天前就<=几SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) <= 1; 本周SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(send_time,'%Y-%m-%d'),1) =

2020-08-31 19:08:46 1237

原创 SpringBoot整合过滤器、拦截器

目录过滤器、拦截器的区别springboot整合过滤器springboot整合拦截器 过滤器、拦截器的区别过滤器:提前过滤掉一些请求,或者提前设置一些请求参数,eg. 校验用户是否登录、校验用户是否具有特定指定权限,统一设置字符集、设置跨域,从cookie中获取用户信息并听见到请求参数中、方便后续使用。拦截器:面向切面编程的一种体现,在方法调用前后做一些处理 过滤器、拦截器的通用场景记录日志:记录请求信息,以便进行信息监控、信息统计、PV计算(Page View)等性能

2020-08-31 18:54:16 269

原创 WebSocket的使用

目录WebSocket简介SpringBoot整合WebScoket依赖方式一方式二方式三(推荐)WebSocket的监听器WebSocket的拦截器 WebSocket简介WebSocket是基于TCP的一种新的网络协议,实现了浏览器、服务器之间的全双工通信,允许服务器主动发送信息给客户端。WebSocket只需要一次HTTP握手,整个通讯过程建立在一次连接状态中。 WebSocket常用于服务器推送实时数据给客户端,常见的应用场景如下弹幕网页聊天系统公告实时数据

2020-08-31 08:17:44 280

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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