自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冯华

念念不忘,必有回响。

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

转载 傻傻分不清之 Cookie、Session、Token、JWT

什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明 “你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功) 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱 / 验证码,就默认你是账号的主人 什么是授权(Authorization) 用户授予第三方应用访问该用户某些资源的权限 你在安装手

2020-10-22 09:52:38 153

原创 非常好的单体到分布式的演变之路!

读到的一篇公众号,写的单体服务到分布式演变之路,写的非常好,分享给大家!由于疫情的原因,我被分配的任务不是很多,所以就会空出一点时间,一般这个时候我都会做自己的事情,比如看看源码、翻翻博客、然后就是写写博客。正当我沉迷在源码中不能自拔的时候,总监突然来到我旁边轻声的对我说道:最近这段时间大家的任务也不是特别多,空闲时间比较足,你这边能不能做点技术分享什么的,一来可以联络一下同事之间的感情,二来也可以增加同事之间的学习氛围。宝宝心里难受,一直在想我要讲一个什么样的话...

2020-05-26 12:03:17 810

转载 PLM系统意义是什么?

此模式的PLM的关注点是企业经营能力,通过实现经营信息的可视化,把客户需求的产品信息与企业的经营战略结合起来。另一方面,通过PLM系统企业实现了数据共有,但3DCAD数据非常庞大,如果发生工程变更,尤其在产品研发阶段,设计内容不断的变更,这会极大地影响网络传输速度和PLM响应速度,引起制造工程信息的混乱甚至PLM系统的崩溃。PLM覆盖了从产品开发到售后服务的整个阶段,根据PLM解决方案的提供商的立场不同,大体上PLM系统分为三类:以CAD为中心的PLM、以PDM为中心的PLM和以ERP为中心的PLM。

2022-11-03 13:50:35 774 1

转载 JDK8都10岁了,你还在用for循环遍历list吗?

Java 8 API添加了一个新的抽象称为流Stream

2022-06-08 09:40:04 123

原创 Java批量更新太慢?多线程+List分段完美解决!

Java批量更新

2022-06-08 09:21:06 296

转载 为了甩锅,我写了个牛逼的日志切面!

最近项目进入联调阶段,服务层的接口需要和协议层进行交互,协议层需要将入参[json字符串]组装成服务层所需的json字符串,组装的过程中很容易出错。入参出错导致接口调试失败问题在联调中出现很多次,因此就想写一个请求日志切面把入参信息打印一下,同时协议层调用服务层接口名称对不上也出现了几次,通过请求日志切面就可以知道上层是否有没有发起调用,方便前后端甩锅还能拿出证据写在前面本篇文章是实战性的,对于切面的原理不会讲解,只会简单介绍一下切面的知识点切面介绍面向切面编程是一种编程范式,它作为OO.

2021-03-23 09:43:20 76

转载 实战 2000w 数据大表的优化过程,提供三种解决方案

大家好,我是华哥今天华哥,跟大家聊一聊,2000w 数据大表的优化过程,公司在使用阿里云的 rds for MySQL 数据库中(其实就是MySQL5.6版本),有个用户上网记录表,6个月的数据量近2000万,保留最近一年的数据量达到4000万,每次查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!我尝试解决..

2021-03-17 08:50:42 763

转载 RabbitMQ 延迟队列

大家好,我是华哥,今天总结了一波RabbitMQ 延迟队列问题,和大家分享一下,目前常见的应用软件都有消息的延迟队列的影子,应用也极为广泛,例如:1、淘宝七天自动确认收货。在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持续七天,就是使用了消息中间件的延迟推送功能。2、12306 购票支付确认页面。我们在选好票点击确定跳转的页面中往往都会有倒计时,代表着 30 分钟内订单不确认的话将会自动取消订单。其实在下订单那一刻开始购票业务系统就会发..

2021-03-17 08:41:24 101

转载 放弃okhttp、httpClient,选择了这个牛逼的神仙工具!

在SpringBoot项目直接使用okhttp、httpClient或者RestTemplate发起HTTP请求,既繁琐又不方便统一管理。因此,在这里推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架retrofit-spring-boot-starter,使用非常简单方便,同时又提供诸多功能增强。目前项目已经更新至2.2.2版本,并且会持续进行迭代优化。前言Retrofit是适用于Android和Java且类型安全的HTTP客户端,其最大的特性的是支持通过接口的方式发起HTTP请求。

2021-01-19 14:26:26 149

转载 SpringBoot项目中,如何更规范的使用PageHelper分页?

作者:臣不贰 blog.csdn.net/NOT_TWO_CHEN/article/details/109230267一. 开发准备1. 开发工具 IntelliJ IDEA 2020.2.3 2. 开发环境 Red Hat Open JDK 8u256 Apache Maven 3.6.3 3. 开发依赖SpringBoot<dependency><groupId>org.springframewor...

2020-11-23 15:58:14 1190

原创 【厉害啦】Java在线考试系统项目!

项目介绍学之思在线考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。目前支持web端和微信小程序,能覆盖到pc机和手机等设备。开源版使用须知 仅用个人学习,商用请购买授权http://www.mindskip.net/buy.html 禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负 演示地址 官网:http://www.mindskip.net 学之思:http.

2020-11-23 15:54:26 528

转载 超级全面的 SpringBoot 注解介绍,每一个用途都应该清晰

一、注解(annotations)列表1、@SpringBootApplication包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让Spring Boot扫描到Configuration类并把它加入到程序上下文。2、@ComponentScan组件扫描,可自动发现和装配一些Bean。3、@Configuration等同于Spring的XML配置文件;使用Java代码可以检查类

2020-11-19 13:15:55 76

原创 这 5 个能挣钱的 SpringBoot 项目,真TMD香!

不得不佩服 Spring Boot 的生态如此强大,今天我给大家推荐几款 Gitee 上优秀的后台开源版本的管理系统,小伙伴们再也不用从头到尾撸一个项目了,简直就是接私活,挣钱的利器啊。SmartAdmin我们开源一套漂亮的代码和一套整洁的代码规范,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,热爱生活。SmartAdmin 让你从认识到忘不了,绝对是你最想要的!项目地址:https://gitee.com/lab1024/s

2020-11-16 13:10:43 169

转载 这 IDEA 超全优化设置,提升,效率,属实牛逼!

显示工具条1、效果图2、设置方法1、标注1:View–>Toolbar2、标注2:View–>Tool Buttons双11了,今天开始,限量秒杀1核2G,1年62元,3年200元,秒杀1核2G,1年62元,3年200元,秒杀1核2G,1年62元,3年200元,秒杀想上班摸鱼好办啊,你可以买一台服务器,搭建个环境,部署个小应用啊,各种捣鼓一下,实战经验很重要,小投资大回报!设置鼠标悬浮提示1、效果图2、设置方法File–>setti

2020-11-12 13:30:22 295

转载 面试官: MySQL 数据库的优化,你知道有哪些?

数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷.1. 优化一览图2. 优化笔者将优化分为了两大类,软优化和硬优化,软优化一般是操作数据库即可,而硬优化则是操作服务器硬件及参数设置.2.1 软优化2.1.1 查询语句优化1.首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息. 2.例:DESC.

2020-11-09 10:12:35 222

原创 推荐 33 个 IDEA 最牛配置,好用到飞起来!

1、设置maven1、在File->settings->搜索maven2、Mavan home directory--设置maven安装包的bin文件夹所在的位置3、User settings file--设置setting文件所在的位置4、Local repository--设置本地仓库的2、IDEA 设置代码行宽度1、在File->settings->Editor->Code Style2、有人会问,如果输入的代码超出宽度界线时,如何让IDE自动将代码换行?有两

2020-09-30 10:18:21 887

原创 面试官:如何设计出骚气的秒杀系统?

前言 一:秒杀应该考虑哪些问题 二:秒杀系统的设计和技术方案 三:总结 前言秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀,那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出骚气的秒杀系统?本期我们就来探讨一下这个问题一:秒杀应该考虑哪些问题1.1:超卖问题分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个,但是最终超卖了200,一般来讲秒杀系统的价格都比较低,如果超卖..

2020-09-15 09:44:27 90

转载 MySQL 数据量太大,日常卡死!想跑路了!

问题概述使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!我尝试解决该问题,so,有个这个日志。方案概述方案一:优化现有mysql数据库。优点:不影响现有业务,

2020-09-15 09:28:49 1567

原创 短信验证码登录的实现流程

1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;2、使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令;3、保存接口返回的信息(一般为json文本数据,然后需转换为json对象格式);4、将手机号--验证码、操作时间存入Session中,作为后面验证使用;5、接收用户填写的验证码及其他数据;6、对比提交的验证

2020-09-14 10:38:48 2443

转载 SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(涵源码,实例)

一、先扔一张图说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如:1、消息发送确认机制2、消费确认机制3、消息的重新投递4、消费幂等性, 等等注 意文末有:3625页互联网大厂面试题这些都是围绕上面那张整体流程图展开的, 所以有必要先贴出来, 见图知意二、实现思路1、简略介绍163邮箱授权码的获取2、编写发送邮件工具类3、编写RabbitMQ配置文件4、生产者发起调用5、消费者发送邮件6、定时任务定时拉取投递失败的消息, 重新投递7、各种异常情况的测试验证8、

2020-09-08 11:33:32 723

转载 因用了Insert into select语句,美女同事被开除了!

Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,她发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后她就被开除了。事故发生的经过。由于数据数据库中order_today数据量过大,当时好像有700W了并

2020-08-31 09:38:52 159

原创 来,手撸一个简版 Redis

rocksdb RestExpress 实现kedis 结语 今天主要介绍两个开源项目,然后创建应用最终实现的效果就像简版的redis服务那样,通过http的get请求,能够插入和获取数据,项目暂取名为kedis,源码后面会上传到git仓库。他们分别是Facebook开源的Rocksdb和netty实现的http容器RestExpress。通过实现这样的一个key/value系统实例来学习这两个框架的使用。rocksdb项目地址:https://github.c..

2020-08-31 09:33:40 116 1

转载 Java 集合框架综述,这篇让你吃透!

一、集合框架图简化图:说明:对于以上的框架图有如下几点说明1、所有集合类都位于java.util包下。Java 的集合类主要由两个接口派生而出:Collection 和 Map,Collection 和 Map 是 Java 集合框架的根接口,这两个接口又包含了一些子接口或实现类。2、集合接口:6 个接口(短虚线表示),表示不同集合类型,是集合框架的基础。3、抽象类:5 个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。4、实现类:8 个实现类(实线表示),

2020-07-27 09:32:12 105

转载 别再问什么是Java内存模型了!!

别再问什么是Java内存模型了,看这里!网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。本文中,有很多定义和说法,都是笔者自己理解后定义出来的。希望能够让读者可以对Java内存模型有更加清晰的认识。

2020-07-24 14:32:50 63

转载 什么是微服务?微服务的地摊式理解。

什么是微服务?微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下:就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用...

2020-06-17 14:39:46 335

原创 springboot+redis 项目

1.在springboot项目的pom.xml文件里加入redis的jar依赖<?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 h

2020-05-22 17:16:00 142

原创 java8 jvm内存模型

1、虚拟机栈:线程私有,随线程创建而创建。栈里面是一个一个“栈帧”,每个栈帧对应一次方法调用。栈帧中存放了局部变量表(基本数据类型变量和对象引用)、操作数栈、方法出口等信息。当栈调用深度大于JVM所允许的范围,会抛出StackOverflowError的错误。2、本地方法栈:线程私有,这部分主要与虚拟机用到的Native方法相关,一般情况下,并不需要关心这部分的内容。3、程序计数器:也叫PC寄存器,JVM支持多个线程同时运行,每个线程都有自己的程序计数器。倘若当前执行的是 JVM 的方法,则该寄存器..

2020-05-21 09:27:55 389

原创 JAVA 对象分配过程

1. 在JAVA中,对象的分配一般使用new关键字。 当虚拟机遇到new指令时,会先检查该指令所包含的参数在常量池中能否找到一个符号引用,并检查该符号引用所代表的类是否被加载、解析和初始化。  如果没有,则会先执行类的加载过程。2. 类加载完成后,会为该对象分配内存空间。一个对象需要多大的内存空间在类加载完成后就确定了。 分配内存有两种方法,依据内存空间是否规整来确定。 如果被内存空间是规整的,只要把空闲指针向空闲内存方向挪动即可,这种方法称为“指针碰撞”; 如果内存空间不是规整的,需要有一个.

2020-05-21 09:27:42 292

原创 MySql组合索引的原理

1 问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析、语法解析、权限检查、查询优化、SQL执行等一系列的步骤,简短的篇幅是绝对无能为力的。因此,本文挑选了其中的部分内容,也是我一直都想写的一个内容,做重点介绍:给定一条SQL,如何提取其中的where条件?where条件中的每个子条件,在SQL执行的过程中有分别起着什么样的作用?通过本文的介绍,希望读者能...

2020-05-21 09:27:23 1406

原创 使用 npm 安装cnpm,grunt后,提示不是内部或外部命令

安装grunt1.安装node.js2.安装gruntnpm install -g grunt-cli3.查看grunt版本grunt -v如下图就证明安装成功,并且系统可以找到grunt..如果还有问题请继续往下看:解决问题添加系统环境:C:\Users\Administrator\AppData\Roaming\npm 添加到系统变量path最后面。记得...

2019-11-27 15:56:03 408

空空如也

空空如也

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

TA关注的人

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