自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大碍桃花开

纸上得来终觉浅

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

原创 ssh框架使用springBoot升级迁移替换Struts2

如果一个十来年的ssh项目想使用springboot的便捷性,但又不想从零开始,那么就让我们开始迁移吧。在pom文件添加springboot 依赖创建application 启动类迁移web.xmlweb.xml文件中定义了filter, struts2等等一堆filter, 这时我们需要做的一件事是在springboot中使我们的filter, struts2 能正常work。 这样就...

2018-11-22 22:32:34 8177 2

原创 elasticsearch snapshots (快照和恢复)

官网:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html前几天在写一个刷新ES tool的时候,在QA的test环境上测试tool, 由于测试环境设置了public ip and private ip , 外加对测试环境中ES集群配置的不了解。结果在用postman 测试92...

2018-11-21 22:35:44 3762 2

原创 记mybatis一级缓存引起的一次oom

记mybatis一级缓存引起的oom排查过程解决方案最近做了一个同步数据的需求,需要将代理人学习课程的记录同步至ck,便于数据分析及对应报表查询导出等功能。线上大约十几万代理人,课程五十门左右,累计大约五百万的数据。于是写了个定时任务计算学习结果后插入到clickhouse中。上代码:代码很简单,刚做的时候考虑到数据量较大 没有一次性处理数据,而是分课程去循环处理代理人学习课程的数据,每次根据课程id查出的代理人课程数据也就十几w条,然后再切割数组,每次批量插入一千条,插入完成后,再将此课程数据置

2022-02-10 23:53:38 2121

原创 利用AOP及Interceptor封装链路id、接口统一返回结果Result对象

链路id封装实现及使用现有模块在返回结果中统一封装了响应码code及响应信息msg, 遇到报错时通过报错信息无法快速定位到报错相关的日志信息,查看日志不是很方便{code: “-1”, msg: “系统繁忙”, content: null}封装链路id后,可根据此id作为关键字查找日志,日志信息中会包含整个请求中的相关日志,定位问题会方便很多{“code”: “1”,“msg”: “success”,“content”: {“page”: 1,“pageSize”: 10,“tot

2021-11-07 17:46:46 1218

原创 java精品博文汇总

基础Hash Mapa. https://joonwhee.blog.csdn.net/article/details/78996181b. https://blog.csdn.net/v123411739/article/details/106324537concurrentHashMap扩容源码解析:https://blog.csdn.net/ZOKEKAI/article/details/90051567AQS线程池synchronizedvoliate

2021-05-06 22:44:02 401

原创 RocketMQ发送消息时topic不存在是如何处理的?RocketMQ发送消息流程

我们知道RocketMQ有一个配置autoCreateTopicEnable,开发环境一般我们会设置为true,允许创建topic,而生产上为了统一管理topic, 则会设置成false,在管理界面由管理员统一创建即可那么, rocketMQ是如何根据这个配置来做处理的呢?或者你是否遇到过这个异常信息?No route info of this topic下面让我们开始解决源码首先,生产者启动时会创建一时定时任务,我们先重点关注下下面的这个定时任务做了什么MQClientInstance.s

2021-04-11 16:29:27 4730

原创 验证mysql 隔离级别为读已提交时解决脏读问题

在学习事务的隔离级别时不知道你们会不会产生这样的疑问,在设置事务的隔离级别时只说了设置,可是没说要在哪个事务里设置什么样的隔离级别,如果某一个事务里面设置了其它的隔离级别会怎么样呢?今天就来验证下隔离级别为读已提交时怎么解决脏读mysql版本:8.0首先需设置下自动提交 将自动提交关闭set autocommit = 0;查看是否关闭show variables like ‘autocommit’;设置隔离级别及查看set global transaction isolat

2021-03-24 00:28:12 1790 1

原创 mysql innode和myisam引擎查询性能比较测试

百度了一遍下来都在说myisam引擎的查询性能比innodb好,但是没有看到拿数据出来说话的,今天得空就做了下测试。知识回顾摘抄自:https://blog.csdn.net/STFPHP/article/details/52827845?utm_source=blogkpcl13MyISAM索引的实现MyISAM索引文件和数据文件是分离的,索引文件仅保存记录所在页的指针(物理位置),通过这些地址来读取页,进而读取被索引的行。下图是MyISAM的索引原理图:(为了简化,一个页内只存放了两条记录。)

2021-03-11 23:25:15 531 5

原创 mysql数据结构(页结构、行结构、b+树结构)

mysql数据结构行结构页机构File Header(文件头部)Page Header(页面头部)Page Directory(页目录)B+树行结构mysql中记录行的结构:对于下面俩个字段的理解:n_owned (4个字节 ): 普通记录行数据中此字段是不会有值得,此字段是页中数据分组后每组中最大记录行才会有值,记录的是该组中记录的条数分组是按照下边的步骤进行的: 初始情况下一个数据页里只有最小记录和最大记录两条记录,它们分属于两个分组。之后每插入一条记录,都会从页目录中找到主键值比

2021-02-13 20:16:07 900

原创 教你在windows系统 VMware 软件中安装Ubuntu(附图文教程)超详细

转载自: https://blog.csdn.net/u013142781/article/details/50529030下面这种方式其实并不推荐 试试使用w10专业版的terminal吧 用过之后都说香当然想尝试这种方式也可以,只不过需要花大量的时间和精力不是每一个程序员都必须玩过linux,只是博主觉得现在的很多服务器都是linux系统的,而自己属于那种前端也搞,后台也搞,对框架搭建也感兴趣,但是很多生产上的框架和工具都是安装在服务器上的,而且有不少大公司都要求熟悉在linux上开发,因此.

2020-11-19 22:44:25 3659 1

原创 check the manual that corresponds to your MySQL server version for the right syntax to use near解决方法

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax

2020-11-17 20:38:50 3841

转载 MySQL数据库面试题(2020最新版)

文章目录 数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别? 数据类型mysql有哪些数据类型 引擎MySQL存储引擎My...

2020-10-15 22:52:54 742

原创 HashMap源码再探(JDK1.8源码解析)

再看这篇文章之前,建议先 看一下这篇文章了解一下hashMap在jdk7中的实现:HashMap源码再探(JDK1.7源码解析)hashmap类结构从类图可以看出 HashMap 集合实现了 Cloneable 接口以及 Serializable 接口,分别用来进行对象克隆以及将对象进行序列化。我们可以看到HashMap已经继承了AbstractMap而AbstractMap类实现了Map接口,那为什么HashMap还要在实现Map接口呢?据 java 集合框架的创始人JoshBloch描述

2020-10-15 00:39:04 125

转载 HashMap源码再探(JDK1.7源码解析)

哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中HashMap的实现原理进行讲解,并对JDK7的HashMap源码进行分析。一、什么是哈希表在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组.

2020-10-13 21:52:25 214

原创 main函数初探

main方法初探题外话main函数的类是怎么被虚拟机识别加载至内存的jvm的运行机制jvm的启动细节1---launchjvm的启动细节2---classloader题外话刚学java的同学肯定都知道main方法是一个程序的入口,为我们创建了一个主线程,作为一个老油条了,今天学习springboot项目启动时发现也是通过main方法启动的,于是就触发了我的好奇心,main函数是怎么被执行的呢?被执行之前虚拟机帮我们做了些什么呢?想了解springboot启动流程和autoconfig的同学请看这里:

2020-08-04 01:11:12 1527 1

转载 MySQL常见的七种锁详细介绍

一、死锁示例考虑下面一个MySQL死锁的示例:有如下一张表: CREATE TABLE `test` ( `id` int(20) NOT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`))...

2020-05-17 22:14:01 508 1

转载 MySQL的MVCC及实现原理

MVCC多版本并发控制如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!!首先声明,MySQL的测试环境是5.7...

2020-05-13 22:05:14 497 2

原创 JPA(Hibernate)使用LocalDate LocalDateTime出现保存时间结果不一致异常解决

做单元测试的时候发现新增数据的时间不对,由于使用的jpa保存的数据,实体类的时间为LocalDateTime, 数据库字段为DateTime实体的时间为:15:50,可是存到数据库后就变成了1:50,很是诧异接下来就想办法怎么解决吧。。。。一共想到俩种方式,要么是mysql的时区有问题,要么jpa有问题一 jpa的问题由于低版本JPA(2.3之前)中还未使用jdk1.8的新特性,会把...

2020-03-04 20:44:01 5100

转载 Synchronized原理分析

文章简介synchronized想必大家都不陌生,用来解决线程安全问题的利器。同时也是Java高级程序员面试比较常见的面试题。这篇文正会带大家彻底了解synchronized的实现。内容导航什么时候需要用Synchronizedsynchronized的使用synchronized的实现原理分析什么时候需要用Synchronized想必大家对synchronized都不陌生,主...

2019-12-15 23:25:28 174

转载 详解synchronized与Lock的区别与使用

###引言:昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和使用情况,同时,对synchronized的使用过程一些常见问题的总结,最后是参照源码和说明文档,对Lock的使用写了几个简单的Demo。请大家批评指正。技术点:1、线程与进程:在开始之前先把进程与线程进行区分一下,一个程序最...

2019-12-15 23:24:07 410

转载 MySQL锁详解

MySQL锁详解 一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的...

2019-12-12 22:37:00 140

转载 搭建 ELK 实时日志平台并在 Spring Boot 和 Nginx 项目中使用

在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。ELK 简介ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearc...

2019-12-12 21:05:31 380

转载 java方法调用之重载、重写的调用原理

前一段时间看了《深入理解JVM》第三部分虚拟机执行子系统的内容,看到了重载与重写在JVM层面的调用原理(详见8.3 方法调用一节),但是没有写成博客总结一下,这里讨论讨论。在讨论过程中,难免会涉及到 字节码指令 相关的内容,这部分内容请查看博文: 由常量池 运行时常量池 String intern方法想到的(二)之class文件及字节码指令 。结论1.重载(overload)方法 对重...

2019-12-12 20:36:44 731

转载 MySQL的锁

锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而言就显得尤为重要。1...

2019-12-05 21:37:53 103 1

转载 五分钟搞懂什么是红黑树

五分钟搞懂什么是红黑树(全程图解)18-09-04  星925  + 关注献花(2) 收藏  前戏红黑树,对很多童鞋来说,是既熟悉又陌生。熟悉是因为在校学习期间,准备面试时,这是重点。然后经过多年的荒废,如今已经忘记的差不多了。如果正在看文章的你,马上快要毕业,面临着找工作的压力;又或者你觉得需要将这块知识重新复习一遍;又或...

2019-11-25 22:17:43 249

转载 CAP理论的理解

CAP理论的理解 </h2> <div class="postbody"> CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:一致性(Consistency)可用性(Availability)分区容错性(Partition tolerance)最多满足其中的两个特性。也就是下图...

2019-11-19 20:58:56 195

转载 Java 8 ConcurrentHashMap源码分析

ConcurrentHashMap是HashMap的线程安全版本的实现版本,关于HashMap的分析总结,可以参考文章Java 8 HashMap源码分析。本文将基于java 8中的Java 8 实现来分析ConcurrentHashMap,与之前版本的ConcurrentHashMap实现来看,java 8中做了较大调整,本文仅分析java 8的实现,java 8 之前的实现暂不做分析。为了更好...

2019-11-18 23:37:55 192

转载 SpringMVC 性能优化(不使用@pathvariable注解)

背景达达后台系统目前每天都要支撑数十亿的访问量,这对于服务系统整体架构是个严峻的考验。考虑到越来越复杂的业务以及不断增加的访问压力,我们对数据层进行了一系列的改造(参见达达-高性能服务端优化之路),也对业务层进行了服务化(参见基于Zookeeper的服务注册与发现)。同时,参照DDD设计,我们引入了一个数据访问层,即ModelService。ModelService的职责:封装...

2019-11-16 21:17:10 2234 2

原创 Springmvc是如何根据url路径找到对应的controller方法的

使用restful风格时,我们往往会在一个controller方法使用同一个路径,然后定义不同的httpmethod,那么问题来了,springmvc是怎么做到的呢?首先,看下我们的Controller层代码@SpringBootApplication@EnableEurekaServer@RestControllerpublic class EurekaServerApplicatio...

2019-11-13 00:26:20 10002

转载 Spring MVC参数解析之ParameterNameDiscoverer

大家知道,Spring MVC 有一项非常实用的功能,叫参数绑定。其具体能实现的功能异常强大,这里不再赘述,网上有非常多的资料可供参考,仅举一例用以描述问题。@RestControllerpublic class FooController { @GetMapping("/methodOne") public Boolean methodOne(Integer filedOne...

2019-11-12 22:36:27 915

原创 JVM内存结构、垃圾收集算法、垃圾收集器、字节码文件结构、类加载机制

######内存区域划分程序计数器 线程私有线程私有 用于记录当前线程执行代码的位置,如果在执行native方法,则此计数器为空此区域不会产生内存溢出java虚拟机栈 -xss线程私有,每个方法执行时会创建栈帧,用于记录局部变量、方法出口等信息栈帧在方法执行时会有出栈入栈过程代表着方法的执行过程栈溢出: 线程请求的栈深度大于虚拟机的深度抛出内存溢出:栈长度不可扩展 递归调...

2019-11-11 22:11:15 253

转载 SpringBoot之@EnableAutoConfiguration注解

首先Spring Boot项目中都会如下启动类:@SpringBootApplication public class Appl...

2019-10-14 22:44:46 211

转载 jasypt 集成spring、spring boot 对配置文件中的配置和属性进行加密

简介1、应用场景针对properties和xml配置文件的敏感内容进行加密处理(比如数据库连接密码,通讯秘钥)2、jasypt是一个java实现的安全框架spring 配置1、使用spring mvc集成,可继承PropertyPlaceholderConfigurer子类public class MyPropertyPlaceholderConfigurer extends Pro...

2019-10-14 22:33:47 329

转载 spring.factories详解

在Spring Boot中有一种非常解耦的扩展机制:Spring Factories。这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的。Java SPI机制SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java s...

2019-10-14 22:31:52 6603

转载 Spring解析,加载及实例化Bean的顺序(零配置)

在使用Spring时,Bean之间会有些依赖,比如一个Bean A实例化时需要用到Bean B,那么B应该在A之前实例化好。很多时候Spring智能地为我们做好了这些工作,但某些情况下可能不是,比如Springboot的@AutoConfigureAfter注解,手动的指定Bean的实例化顺序。了解Spring内Bean的解析,加载和实例化顺序机制有助于我们更好的使用Spring/Springbo...

2019-10-13 16:33:43 487

转载 springboot系列文章之启动时初始化数据

前言在我们用springboot搭建项目的时候,有时候会碰到在项目启动时初始化一些操作的需求,针对这种需求springboot(spring)为我们提供了以下几种方案供我们选择: - ApplicationRunner与CommandLineRunner接口 - Spring Bean初始化的InitializingBean,init-method和PostConstruct - Spri...

2019-10-13 16:27:28 291

转载 JVM参数设置

JVM参数设置、分析 </h1> <div class="clear"></div> <div class="postBody"> 不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参...

2019-10-13 16:19:49 211

转载 XSS问题修复

       XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向...

2019-10-08 22:31:06 1531

转载 XSS(跨站脚本攻击)详解

目录XSS的原理和分类XSS的攻击载荷XSS可以插在哪里? XSS漏洞的挖掘 XSS的攻击过程XSS漏洞的危害XSS漏洞的简单攻击测试反射型XSS:存储型XSS:DOM型XSS:XSS的简单过滤和绕过​XSS的防御反射型XSS的利用姿势get型post型利用...

2019-10-08 22:14:39 572

转载 Elasticsearch快速索引实现

Elasticsearch 学习笔记最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了解的同学有所帮助。同时也希望有发现内容不正确或者有疑问的地方,望指明,一起探讨,学习,进步。介绍 Elasticsearch 是...

2019-09-04 20:38:15 305

空空如也

空空如也

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

TA关注的人

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