自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

没有

没有

  • 博客(45)
  • 收藏
  • 关注

原创 手机验证码登录 代码实现 前端和后端

需求: 手机验证码登录,点击发送验证码,输入验证码,登录;思路:输入手机号,点击发送验证码按钮,单击事件触发 前端页面校验手机号格式是否正确,如不正确就返回手机号有误,正确就携带手机号发送请求,在发送请求前做一个倒计时效果;后台接收到手机号,生成验证码,并将验证码保存在redis中手机号为key,验证码为value设置一个过期时间,调用发送短信服务传入手机号和验证码;用户接收到验证码,...

2020-04-02 23:27:45 13799 1

原创 阿里云 第三方发送短信服务 开发步骤

阿里云短信发送工具类阿里云短信发送是需要申请的,进入阿里官网https://workbench.data.aliyun.com/console?#/welcome方便的是可以直接用支付宝扫码登录;里面的短信服务国内消息里面有个模板管理和签名管理,可以根据自己需求去申请;(不要yy可以随意发短信,模板顾名思义四是有标准的,申请也是,如果不符合模板标准是不会通过的,申请一般一天就搞定了)...

2020-04-02 22:29:42 771

原创 定时清理无效图片

解释下为什么会有垃圾图片的出现,在上传图片的时候我们选择图片,通常有一个图片的预览和回显,这时候图片已经上传到我们准备的第三方存储或者是自己的服务器,但是会出现最终并没有确认,也就是图片信息并不会存储到数据库,因为没有确认,这时候图片储存在一定的周期一定会出现无效图片,占用内存;思路:1.在选择照片时上传到了图片储存我们可以将信息保存一份到redis,这是上传成功的照片的集合;然后将照片的存储...

2020-04-02 22:03:56 901

原创 java语言实现Excel文件的上传和下载 POI

POI Excel文件的上传和下载Apache POI是用Java编写的免费开源的跨平台的Java API,(不用我说也知道是哪家公司的了吧)Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。第一步肯定是先带入依赖maven坐标:org.apache.poi.poi 3.14org.ap...

2020-04-02 21:39:15 449

原创 ElementUI 快速上手

ElementUIElementUI是一套基于VUE2.0的桌面端组件库,ElementUI提供了丰富的组件帮助开发 人员快速构建功能强大、风格统一的页面。官网地址:http://element-cn.eleme.io/#/zh-CN链接:https://pan.baidu.com/s/1EGV1bqBIkddyl0QijmkeLA提取码:ww3h搬砖会吗?第一步: 引入相关js&l...

2020-04-02 21:15:07 999

原创 图形报表ECharts 快速上手

先来看几张效果图大致了解下这些都是常用来统计图表;图片来源于官网;重点来了图形报表EChartsECharts缩写来自Enterprise Charts,商业级数据图表,是百度的一个开源的使用 JavaScript实现的数据可视化工具,可以流畅的运行在 PC 和移动设备上,兼容当前绝大 部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级...

2020-04-02 20:51:02 135

原创 打印java日志常用的几种

java中常用的日志打印有:JUL:JDK中的⽇志⼯具,也称为jdklog、jdk-logging,⾃Java1.4以来sun的官⽅提供。Log4j:⾪属于Apache基⾦会的⼀套⽇志框架,现已不再维护Log4j2:Log4j的升级版本,与Log4j变化很⼤,不兼容Logback:⼀个具体的⽇志实现框架,和Slf4j是同⼀个作者,性能很好JUL使用步骤这是官网提供的,当然好处也是不需要...

2020-04-01 18:05:01 503

原创 Actviti 工作流引擎

工作流: 工作的一个流程;事务发展的业务过程;工作流引擎:在计算机的帮助下,实现流程的自动化控制,称为工作流;而Actciti就是一个工作流引擎,用来实现自动化控制管理;Actviti 作用: 实现流程自动化的管理;工作流系统: 这个系统具备流程自动化管理的功能,这个系统就可以称为工作流系统;实现工作流系统的技术:如何来实现流程的自动化管理??1.使用Actviti2. 通过编码控制...

2020-03-18 23:40:25 342

原创 Mysql优化怎么优化

mysql优化主要优化是在查询方面,对性能比较大的影响就是索引,索引优化:1.给经常作为查询或者需要排序的列建立索引;原因是如果需要排序没有索引就会使用全文索引比较消耗性能;2.尽量用主键索引,因为主键和数据是存在一起的,可以最快定位到数据(聚集索引);3.二级索引可以设计为组合覆盖索引避免回表;4.主键尽量用int类型,减少将来建立二级索引占用空间,提升效率,5.模糊查询不让%在前面...

2020-03-17 17:22:23 108

原创 SpringCloud的个人理解易懂

SpringCloud 微服务五大组件 注册中心Euerka 负载均衡Ribbon 网关Gawaty 远程调用Fegin 熔断器euerka是起到注册和监控每个微服务的作用;服务注册并由euerka发送心跳监听,而且它还有自我保护机制,当它发现在一定的时间内有达到一个阈值就会认为是客户端和服务端之间的网络出现异常,就不会抛弃没有响应的服务,等待网络正常;常见的注册中心有zookee...

2020-03-17 13:39:01 122

原创 VUE 渐进式前端框架 简单使用

vue 是前端渐进式框架; 作用是 提高前端开发效率;下载方式:1.在线引用vue.js2.可以离线下载3.npm包资源管理器,可以下载vue.js npm init -y npm install vue -save实现双向绑定<!DOCTYPE html><html lang="en"><head> <meta chars...

2020-03-12 14:42:06 287

原创 分布式文件储存 FastDFS

文件储存微服务 FastDFS1.引入依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</ar...

2020-03-03 15:26:31 227

原创 前端文件上传后端接收

导入commons-fileupload和commons-io的坐标,表单文件上传必要三要素:1.要有teye="file"和name值属性2.要是多表单类型enctype=“multipart/form-data”3.post请求(因为post请求有请求体的,可以支持大的数据传输)然后接收文件,要有MultipartFile 对象, 且变量名要和表单的name值一样该对象常用方法 ...

2020-03-03 13:21:14 4017

原创 简单的Dubbo笔记

Dubbo 是一款高性能的java RPC框架;三大核心能力: 面向接口的远程调用, 只能容错和负载均衡, 服务自动注册和发现;Dubbo官方推荐zookeeper来作为服务的注册中心;原理是: 扫描加了@Service的类并注册到zookeeper中,注入使用Dubbo提供的@Reference注解,Dubbo支持的协议有很多种: Dubbo 协议 http 协议 rest协议等等...

2020-03-03 13:03:55 116 1

原创 MyBatis笔记

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github;MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射;MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 J...

2020-03-03 12:53:46 301

原创 SpringCloud 微服务笔记

系统架构单体架构优点: 开发快,成本低,适用并发要求低的系统缺点:代码耦合性高,并发低,不易维护,扩展困难;垂直架构优点:系统进行拆分,并发量提升,扩展方便,容错性好缺点: 代码冗余,有很多重复代码;分布式架构:优点:将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率缺点:系统间耦合度变高,调用关系错综复杂,难以维护微服务架构优点: 将服务细化,每个服务都可以独立...

2020-03-03 12:52:27 81

原创 并发多线程笔记

进程和线程进程:进程是线程的容器,一个应用程序被运行的这个过程就开启了一个进程;但是一个应用程序可能不止只有一个进程;线程:一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给CPU执行;一个进程之内可以分为一到多个线程;线程做为最小的调度单位,进程作为资源分配的最小单位;在windows中进程是不活动的,只是作为线程的容器;进程:有独立的内存空间(堆内存和栈内存)用来存放数...

2020-02-26 09:51:44 287

原创 redis笔记

Redis是开源的免费的高效的以键值对类型的 NoSQL数据库;Redis自身优势:1.支持的数据类型丰富;2.因为使用的是内存,读写速度快;3.原子性,redis中的操作都是单线程,但后期可能会出多线程;4高可用,redis主从模式,哨兵,集群5.可设置过期时间,消息订阅等Redis支持的数据类型:String(字符串)、List(列表)、Set(无序去重集合)、Sorted S...

2020-02-22 21:13:30 82

原创 Spring框架笔记

Spring是分层的java EE/SE应用轻量级开源框架;IOC(反转控制)和AOP(面向切面编程)两大核心;优势:方便解耦,简化开发;支持AOP编程方便程序测试声明式事务的支持常用标签:Bean 创建对象交由Spring容器管理,默认使用无参构造标签属性scope 指对象的作用范围 默认单例,可以设置prototype 多例的,Bean的生命周期(单例时):当应用加载...

2020-02-12 16:30:47 211 2

原创 String笔记

1,String类代表的是字符串,java中所有用""双引号引起来的都是String类的实例;2,String类是不可变的,但是可以共享;3.String类效果是字符数组,底层是字节数组;jvm中有一个常量池,常量池包含整数:-127到127,还包含字符串,直接赋值的字符串会先从jvm的常量池寻找,如果没有就创建这个字符串到常量池,来保证下次有相同的字符串可以直接赋值;用new创建的Str...

2020-02-10 17:07:02 370 1

原创 数组之静态初始化和动态初始化个人笔记

实例:数组静态初始化:数据类型 [] 对象名称 = {值}int[] arr = {2,4,5,33,55,66,65};索引是从0开始数组动态初始化:数据类型 [] 对象名称 = new 数据类型(长度)int[] arr = new int(6);6代表这个数组的初始化长度是6,索引还是从0开始;数组属于引用数据类型;ArrayList集合底层就是数组,数...

2020-02-10 15:39:23 171

原创 JWT令牌,常见加密算法,Base64笔记

JWT令牌:是客户端和服务器进行数据安全传输的一种标准:组成:头 (指定签名的加密算法方式),负载(主要子自定义信息内容),签名(头部Base64+负载Base64通过加密算法和密钥生成的) 作用:防止令牌信息被篡改;JWT令牌优点:1.jwt基于json,非常方便解析2.可以在令牌中自定义丰富的内容,易扩展;3、通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高。4、...

2020-01-11 21:42:51 3858 1

原创 使用Oauth2认证登录

使用的Oayth2的密码模式自定义认证服务来进行认证,同时使用了JWT令牌,RAS非对称加密算法,加上Spring Securuty 安全认证框架流程:认证服务controller层认证操作:@RestController@RequestMapping("/oauth")public class AuthController { @Autowired private...

2020-01-11 21:16:25 1271 1

原创 Cookie工具类

响应中添加cookie ,创建cookie包含cookie常用参数获取cookiepackage com.changgou.oauth.util;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRespon...

2020-01-11 20:50:11 80 1

原创 SpringMVC全局异常类

//全局异常处理器@ControllerAdvice //声明这是个全局异常处理类public class HandlerException { @ExceptionHandler(Exception.class)//捕获所有异常 public Result handlerException(Exception e){ return new Result(f...

2020-01-11 19:32:49 67

原创 Thymeleaf笔记

Thymeleaf简介:模板引擎,可以实现页面静态化技术,作为动态网页开发技术类似jsp:页面静态化Velocity/FreeMarker也可以实现这个技术;Thymeleaf是spring官方推荐的技术,开发简单,可以独立开发;可以整合springMVC的可选模块.thymeleaf入门:1.创建maven工程2.引入依赖spring-boot-starter-thymeleaf...

2020-01-11 13:58:29 249

原创 Thymeleaf 实现页面静态化

Thymeleaf 模板引擎作用:1.实现页面静态化技术2.作为动态网页开发技术,类似jsp;Thymeleaf是spring官方推荐的技术,其他实现技术还有FreeMarker/VelocityThymeleaf实现页面静态化这里的需求是 获取RibbitMQ消息,通过spuid查询数据根据模板生产静态化页面1.创建Maven项目2.引入依赖<dependency>...

2020-01-11 13:55:14 701

原创 Spring Security 安全框架的应用

Spring Security 安全框架Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我 们来简化认证和授权的过程。官网:https://spring.io/projects/spring-security常用的权限框架除了Spring Security,还有Apache的shiro框架。入门案例1.创建maven工程...

2020-01-09 21:08:42 165

原创 分页page工具类

package com.changgou.util;import java.io.Serializable;import java.util.List;/** * 分页对象 * @param <T> */public class Page <T> implements Serializable{ //当前默认为第一页 public static fi...

2020-01-09 17:56:50 712

原创 使用spring data ElasticSearch操作常规的关键字查询.精确查询.价格区间.规格查询.分组.聚合.高亮.ES添加数据.ES删除数据.ES创建索引库

package com.changgou.search.service.impl;import com.alibaba.fastjson.JSON;import com.changgou.goods.feign.SkuFeign;import com.changgou.goods.pojo.Sku;import com.changgou.search.dao.ESManagerMappe...

2020-01-08 21:43:57 564

原创 Fegin调用服务方法

直接贴代码@FeignClient(value = "goods")//调用哪一个接口的服务,会从eureka中找服务然后根据下面的路径找到方法得到放回值public interface SkuFeign { //服务的请求路径 @GetMapping("/sku/spu/{spuId}") public List<Sku> findSkuList...

2020-01-07 21:44:07 1168

原创 Canal 数据监控 同步缓存数据

canal: 阿里旗下的开源的,java语言的开发作用:用来监控数据库数据的变化,从而获取新增数据或者修改的数据;原理:Canal伪装成mysql的备份机,当mysql数据发生过改变,就会把binary log日志发送给从数据库来保证数据的一致性,然后Canal就可以监控数据的改变实现:mysql需要开启binlog模式数据监控微服务:1.搭建maven工程导入:starter-...

2020-01-07 21:42:07 1263 1

原创 使用java代码发送请求的几种方法

HttpClient1.导入依赖<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency>2.编写代码publi...

2020-01-07 16:00:57 1194

原创 Gateway限流

令牌桶算法:根据控制令牌生成的速度来进行限流,因为当一个请求需要处理必须先去拿到令牌,没有令牌是不会进行处理的;这个算法的实现,有很多技术,Guava(读音: 瓜哇)是其中之一,redis客户端也有其实 现。实现:令牌桶是基于redis的,所以我们要先1.导入redis的依赖spring‐boot‐starter‐data‐redis‐reactive2. 然后在引导类配置 @Bea...

2020-01-03 19:42:33 785

原创 Lua+Nginx+Openresty 实现主页面二级缓存

在/root/lua目录下创建ad_load.lua ,缓存预热.,实现连接mysql取到数据放入redis中-- 设置编码集ngx.header.content_type="application/json;charset=utf8"--引用cjsonlocal cjson = require("cjson")--引用mysqllocal mysql = require("resty...

2020-01-03 19:14:08 548

原创 IdWork工具类

package com.changgou.util;import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.net.NetworkInterface;/**名称:IdWorker.java描述:分布式自增长IDTwitter的 Snowflake JAV...

2020-01-03 13:53:20 807

原创 跨域解决方案

跨域问题?a页面 http://127.0.0.1:9000b页面 http://127.0.0.1:8000两个页面想要交互,a页面发送请求到b页面请求成功,但是得不到返回的数据;这就是跨域问题;会报一个跨域错误信息:No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ...

2019-12-29 20:04:43 84

原创 分布式框架 Dubbo 理解

分布式RPC框架Apache Dubbo1. 软件架构的演进过程软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程.1.1 单体架构架构说明:​ 全部功能集中在一个项目内(All in one)。架构优点:​ 架构简单,前期开发成本低、开发周期短,适合小型项目。架构缺点:​ 全部功能集成在一个工程中,对于大型项目不易开发、...

2019-12-18 21:40:33 118

原创 mybatis逆向工程

mybatis逆向工程1,什么是逆向工程根据表生成pojo,mapper接口,mapper映射配置文件但是只能生成简单的增删改查,业务逻辑的代码还是需要自己写,复杂点的表查询都要重新写sql语句!不过这也极大的简化了一些代码不需要做重复工作2,操作步骤2.1 创建maven工程2.2 添加maven插件 <!--mybatis-generator插件--><plu...

2019-12-18 21:39:45 147

原创 nginx 理解

Nginx 反向代理/负载均衡Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。Nginx 应用场景:1、http 服务器。Nginx 是一个 http 服务可以独立提供...

2019-12-18 20:55:36 452

空空如也

空空如也

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

TA关注的人

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