自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

转载 SpringMVC源码-剖析HandlerExceptionResolver异常解析器家族体系

SpringMVC相关

2022-02-23 16:28:40 352

原创 Mybatis源码-一条sql语句中占位符既有#{}也有${} 会不会存在注入的问题

Mybatis源码-一条sql语句中占位符既有#{}也有${} 会不会存在注入的问题本文测试的表数据(这只是该表部分数据)StudentMapper.java@Mapperpublic interface StudentMapper { List<Student> getByName(@Param("stu") Student student);}先分析一条sql语句的占位符全是#{}的情况mapper.xml查询语句<select id="getByName

2020-11-22 16:34:57 687

原创 1.mybatis源码(1)-一条sql语句中占位符既有#{}也有${} 会不会存在注入的问题

本文测试的表数据(这只是该表部分数据)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JLy4Z5mc-1606032514826)(https://i.loli.net/2020/11/22/R8dQL9DksEmT5Yu.png)]StudentMapper.java@Mapperpublic interface StudentMapper { List<Student> getByName(@Param("stu") Student stud

2020-11-22 16:10:26 367

原创 2.使用@validated校验入参

使用@validated校验入参GET请求方式使用@Validated来校验入参DTO的属性@Datapublic class GetDTO implements Serializable { private static final long serialVersionUID = 3210527646315462832L; @NotEmpty(message = "id不能为空") @ApiModelProperty(value = "账号名称:手机号、邮箱、 系统用户名、或第三

2020-11-06 20:53:52 1121

原创 1.@RequestBody和@RequestParam的区别

post请求不用@RequestBody注解@RequestMapping("/post/test")@PostMappingpublic String testPost(StudentDTO dto) { return dto.toString();}如果后台接口是这样写的话,前端请求接口用form-data、x-www-form-urlencoded、application/json这三种方式发送请求,后端接口都不能接收到参数的值。用@RequestBody注解@RequestMap

2020-11-01 10:45:31 1052 2

原创 1.根据异常的堆栈信息排查异常出现的原因

根据异常的堆栈信息排查异常出现的原因异常堆栈信息示例java.lang.NullPointerException: null at com.fdd.op.common.exception.GlobalExceptionHandler.resolveException(GlobalExceptionHandler.java:222) at com.fdd.op.gateway.server.exception.JsonExceptionHandler.handle(JsonExceptionHandl

2020-10-31 22:14:54 778

原创 RabbitMQ入门篇、介绍RabbitMQ常用的五种模式

RabbitMQ认识RabbitMQAMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。注意事项:一个队列可以绑定到多个交换机上RabbitMQ六种工作模式RabbitMQ官网6种工作模式的介绍:https://www.r

2020-09-13 22:40:48 921

原创 4.RabbitMQ死信队列

RabbitMQ死信队列概念介绍相关概念DLX:(dead-letter-exchange的缩写)死信队列交换机DLK:(dead-letter-routing-key的缩写)死信队列routingKeyTTL:(time-to-live的缩写)存活时间DLX、DLK、TTL三者关系的解释当一个队列A设置了这三个属性时,如果队列A里面的消息变成了死信时,会被路由到与DLX交换机进行绑定的队列上,并且routingKey是DLK指定的。什么时候消息会变成死信消息呢?消息被拒绝(ba

2020-09-13 21:39:50 801

原创 3.RabbitMQ结合发送邮件的场景

RabbitMQ结合发送邮件的场景主要内容了解如何实现发送邮件通过RabbitMQ实现异步发送邮件(避免主要业务进行阻塞)正文maven依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outp

2020-09-13 21:36:51 447

原创 2.RabbitMQ的SimpleMessageListenerContainer使用

RabbitMQ的SimpleMessageListenerContainer使用主要内容SimpleMessageListenerContainer和ChannelAwareMessageListener的使用并发配置,设置最小和最大消费者数量设置消息确认机制(NONE、MANUAL、AUTO三种)正文maven依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sour

2020-09-13 21:35:52 4472 1

原创 1.SpringBoot整合RabbitMQ

SpringBoot整合RabbitMQ主要内容SpringBoot整合RabbitMQ(SpringBoot 1.3.3.RELEASE版本)发送数据到rabbitMQ监听RabbitMQ队列并消费该队列中的消息整合过程maven依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.o

2020-09-13 21:33:29 165

原创 InnoDB和MyISAM两者的对比

InnoDB和MyISAM两者的对比前言什么叫聚集索引(也叫聚簇索引)满足一下两点:数据存储在主键索引中表行中数据的物理顺序与主键值的逻辑(索引)顺序相同正文可参考:https://blog.csdn.net/qq_35642036/article/details/82820178事务InnoDB:InnoDB支持事务,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务MyISAM:

2020-09-12 20:35:53 228

转载 Redis分布式锁的会出现的问题

 前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将...

2020-04-26 16:28:06 1006

转载 Java面试官最爱的volatile关键字

在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识。下面我们以一次假想的面试过程,来深入了解下volitile关键字吧!面试官: Java并发这块了解的怎么样?说说你对v...

2020-02-21 10:32:14 80

原创 1.多线程诊断工具jconsole、jstack、查看字节码

本文主要讲解在多线程下,如何使用诊断工具jconsole、jstack、字节码反编译。jconsole首先使用win+r快捷键调出运行窗口,然后再输入jconsole执行。然后连接自己的程序。连接好后,可以在线程选项模块中查看各个线程的状态。jstack在windows环境下,可以先在cmd命令行执行jps 用以查看相关的程序进程的pid。在使用jstack pid命令查看...

2020-02-15 10:02:43 393

原创 02.理解线程的stop和interrupt方法的区别

public class Test3 { public static void main(String[] args) { Object o = new Object(); Thread t = new Thread(() -> { synchronized (o) { try { ...

2020-01-27 17:51:39 1644

原创 1.对《Java高并发编程详解:多线程与架构设计》书做一个总结(第一篇)

1.问题分析工具 jconsole jstack jstat jvisualvm jProfiler 前4个工具是在jdk的bin目录下的,最后一个是一个收费的工具。还有一个class字节码反编译命令:javap -c class文件名2.线程生命周期的状态new:线程的创建。 Runnable:可运行状态,就是线程调用了start方...

2020-01-14 14:32:47 329

原创 1.总结一位神秘大佬的话,希望大家看完也能有一些思考

1.关于技术不要过度追求新技术、新框架,每年流行的都不一样 你确定能追上吗?框架 就是设计思想的具体实现 是个完整的项目成千上万人的技术成果 你凭啥觉得自己能全部搞懂 能追的上等你把新技术、新框架琢磨透了 黄花菜都凉了我们应该要抓住技术中那些不变的:数据结构、算法、设计模式、计算机底层原理、JVM、多线程、并发、设计思想。这些大部分是脱离了计算机语言或框架...

2020-01-09 21:11:26 176

原创 1.volatile的有序性-单例模式双重检测锁为什么要用volatile?

本篇文章想解释一下单例模式-双重检测锁为什么要用volatile关键字这个问题先看代码:public class Singleton { static Singleton instance; public Object o; public Singleton() { this.o = new Object(); } static...

2020-01-06 16:27:58 378 1

转载 mysql b+Tree每层能存多少条数据?b+Tree每层有多少分支?

InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page),...

2019-12-05 10:21:07 3376 2

原创 1.sql表关联查询没走索引

背景:A表字段aid和B表的aid是关联的字段,并在各自的表中 该字段都建了索引,但是A和B表同过aid关联查询时却没有走索引。原因:1.可能是aid在A表和B表的字符集不相同,字符集不相同会导致不走索引。...

2019-10-31 09:49:24 1194

原创 02.Linux设置tomcat传输数据大小maxPostSize

遇到两次这个问题,记录一下。登录的时候后台获取不到验证码,本地环境是tomcat7.32,服务器是tomcat7.82,一样的配置,本地没有发生这样的情况。查询资料发现tomcat7配置的时候,把maxPostSize=”0”的配置去掉的时候问题消失。根据以往的经验,maxPostSize=”0”不就是不限制post数据的大小的么,怎么还反倒限制了数据的大小了呢?因为项目里面要post一...

2019-10-11 20:38:33 559

原创 01.Linux设置tomcat远程debug端口

首先使用idea远程debug的方式:设置过程:1.首先进入到tomcat的bin目录,然后修改该目录下的catalina.sh添加或将JAVA_OPTS设置为如下:JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5555"其中address=5555设置的就是远程调用使用...

2019-10-11 20:32:59 755

原创 01_jenkins的安装

安装环境的要求:最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8 安装步骤:安装jdk1.8://为了方便,这里安装openjdk yum install -y java-1.8.0-openjdk wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenki...

2019-10-08 22:23:54 81

原创 idea中tomcat输出日志乱码

tomcat乱码输出如上,解决办法:在idea安装目录的bin目录下面,找到idea.exe.vmoptions和idea64.exe.vmoptions文件,并在这两个文件的末尾加上一下两行配置-Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8最后成功。...

2019-08-06 10:12:52 125

原创 Calendar的灵活使用

Calendar calendar = Calendar.getInstance();//当前时间往后加一天calendar.add(Calendar.DAY_OF_MONTH, 1);//当前时间往后加3小时calendar.add(Calendar.HOUR_OF_DAY, 3);Date newDate = calendar.getTime();...

2019-06-05 10:07:07 176

原创 maven 引用其他项目引用的包出现BOOT-INF问题

maven 引用其他项目引用的包的子模块出现BOOT-INF问题在B项目中引入A项目的类,但是发现怎么也引入不进来再来看看依赖进来的jar,发现被依赖进来A项目的包下面多了一个BOOT-INF目录,再去A项目里面找原因,发现在A项目的pom.xml文件中有一个maven的打包插件<build> <plugins> <...

2019-05-28 09:56:48 2995 1

IDEA setting配置

个人电脑使用的IDEA setting 配置

2023-07-23

idea2020-mybatis_log_plugin.rar

mybatis log plugin插件(mybatis sql打印工具插件),支持2020版本的IDEA。使用的时候先解压,然后在使用被解压出来的目录里面的jar。

2021-10-25

settings.zip

公司IDEA 的 setting配置

2021-04-02

Typora主题样式文件.rar

Typora主题样式文件.rar

2021-03-13

空空如也

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

TA关注的人

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