- 博客(28)
- 收藏
- 关注
原创 Mybatis系列插件(一)-Mybatis-PageHelper分页插件
本篇主要讲述Mybatis-PageHelper分页插件使用和其底层原理。
2024-12-08 21:09:02
1087
原创 Mybatis-plus 源码解读
简述本篇主要针对MybatisPlus源码进行解读。案例上一篇已经讲了Springboot如何集成MybatisPlus:springboot-mybatis-plus集成篇源码解析和Springboot集成Mybatis一样,依赖了mybatis-plus-spring-boot3-starter,其中主要关注spring.factories和org.springframework.boot.autoconfigure.AutoConfiguration.importsspring.fa
2024-12-08 21:03:56
797
原创 mybatis集成篇(二)--Springboot集成mybatis
随着Spring框架越来越成熟,推出的Springboot使用也越来越广,Mybatis随其自然地适配Springboot。
2024-12-03 09:08:06
1113
原创 Mybatis集成篇(一)
是Spring框架中的一个重要特性,主要用于导入配置类或普通类,实现配置的模块化和动态配置的加载。通过使用@Import注解,可以将多个配置类组合在一起,便于管理和维护大型应用程序的配置。目前主流Spring框架体系中,可以集成很多第三方框架,方便开发者利用Spring框架机制使用第三方框架的功能。也就是说MapperScan的相关处理是由MapperScannerRegistrar这个类进行逻辑处理。上面的案例是通过注解的方式进行Mybatis相关信息配置和相关Mapper使用。该注解中有个很重要的@
2024-11-28 23:39:00
512
原创 Mybatis源码分析篇
在上几篇文章中大致介绍了mybatis的作用和用法。本篇主要对mybatis的源码做一个分析。而在源码分析之前,需要重点介绍mybatis几个重要的类:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Configuration、MappedStatement、SqlSource、LanguageDriver、KeyGenerator、Executor;每个类都有各自的角色职责。});
2024-11-28 23:38:41
570
原创 ReetrantLock锁
ReetrantLock锁的初步介绍 public ReentrantLock() { //默认new一个ReentrantLock是创建一个非公平锁 sync = new NonfairSync(); }lock方法public void lock() { sync.lock();//默认是个非公平锁 }sync.lock方法是NonfairSync静态内部类的lock方法static final class NonfairSync exten
2021-03-07 23:28:59
359
原创 HashMap
HashMap底层代码解析,在高并发下,会报ConcurrentModificationException:put方法:public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }hash方法,使用高16位异或低16位主要是从速度,功效和质量来考虑的,减少系统的开销,也不会造成因为高位没有参与下标的计算,从而引起的碰撞:static final int hash(Obj
2021-03-05 11:34:52
287
4
原创 简单了解Springboot以注解的方式注入到Context容器中
注解是注入流程解析注解注入主要使用的Context类是AnnotationConfigApplicationContext@SpringBootApplicationpublic class Application { public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplication
2021-03-03 13:40:58
550
原创 Netty
简介Netty是一个异步事件驱动的网络应用程序框架,一个基于NIO客户端服务器框架,支持多种协议(自定义的传输协议),可以灵活快速的搭建与开发,支持自定义扩展时间模型和通用的通信API并且Byte Buffer实现了零拷贝;用于快速开发可维护的高性能协议服务器和客户端。学netty之前可以先了解一下NIO模型。特性使用各种传输类型的统一API--阻塞和非阻塞嵌套字。 基于灵活且扩展的事件模型,可将关注点明确分离。 高度可定制的线程模型-单线程,一个或多个线程池。 从3.1版本后真正...
2021-02-27 23:42:03
244
原创 幂等性
场景幂等性的使用的场景是为了避免一个动作重复提交,可能会造成数据不准确。本文使用redis来实现幂等性功能。小场景流程图:maven依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artif.
2021-02-25 22:55:51
135
原创 使用redis实现分布式锁
本文章通过两个方式实现分布式锁第一种方式使用redis中setnx机制来实现,第二种是使用redission组件实现(目前redis官网是推荐使用的)。第一种实现方式:原理:这是设置锁是用到了setnx机制来做。所需要的maven依赖:<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>
2021-02-25 18:21:27
230
原创 缓存击穿、缓存雪崩、缓存穿透
缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个...
2019-07-14 23:28:50
149
原创 Redis基础整理
目录1、redis介绍2、redis性能(官方测试)3、安装与配置Linux 下安装4、redis常用指令1、redis介绍redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些...
2019-07-04 17:21:04
179
原创 kafka 爬坑
最新项目中使用kafka消息中间件遇到的问题,在项目上线的时候跑了一段时间后出现kafka 客户端发送异常。异常信息:41261 mshas passed since last append和30078 ms has passed since batch creation plus linger time;网上查了一大堆的解决方案后未能达到解决效果。后来尝试着调整一下客户端的配置参数。b...
2019-05-23 14:50:43
348
原创 表单便签数据提交相关的问题
表单1:简单的表单数据提交:js代码:document.form1.action=url; //可以获取form1中的里面的数据提交到后台处理,对的是id+value。document.form1.submit();jquery:post提交multipart/form-data类型的表单:jQuery.ajax({ url:url, type: 'post', ...
2018-06-25 14:26:57
276
原创 从一个浏览器中打开另一个浏览器程序并执行指定的网址
环境:windows系统、ie浏览器、360浏览器。通过js脚本进行打开浏览器。关键js代码: <script type="text/javascript"> function start(strPath){ var objShell = new ActiveXObject("wscript.shell"); var cmd = "cmd /c start C:/Users...
2018-04-02 16:53:02
23453
6
原创 ORACLE 查询速度优化篇
去重函数:ROW_NUMBER() OVER(PARTITION BY 列名,列名 ORDER BY 列名,列名desc) rn,当rn=1的时候,根据指定的列名来去掉重复的数据。非分区表,建索引:建命中索引,根据所需查询的条件来建对应的索引。能加快查询速度。分区表:分区表主要针对数据量大的表进行分区,分区条件可根据按天分区等,具体建的分区要根据实际情况而定,分区表索引,建议建LOCAL索引,而非...
2018-04-02 16:39:10
4531
原创 基于commons-email,web端发送邮件
前几个星期,我发表了有关commons-email的简易发送的案例,之前的案例只是在main方法中成功是实现发送邮件功能。这次,我参考了一下javamail 发送邮件的原理,成功搞定,commons-email在web端邮件发送的成功。之后查找相关资料后发现,commons-email是基于javamail所开发的。下面就是成功过的案例:第一步导入相关jar包,这里我就不多说了,在之前
2016-09-02 11:28:29
939
原创 javamail邮件发送小案例
现在很多网站的注册过程中,大多数都会让用户用邮箱注册,这也方便用户在忘记登陆密码时,在重设密码时,可以发送链接到该注册时填写的邮箱中,让用户可以链接到密码修改页面,这就少了很多程序。 写这个小案例是为了方便一些想做邮件发送功能,而不知道从什么地方下手的程序员更好的接触javamail是怎样实现这一功能的 第一步,先到https://java.net/projects/javam
2016-09-01 22:17:47
1613
原创 websocket技术,实现单聊和群聊
基于我上次写的有关tomcat自带的websocket的简单搭建,搭建的链接:http://blog.youkuaiyun.com/yayicho/article/details/52080486搭建步骤我就不多说了下面是我写的单聊和群聊的案例前台的代码1、登陆页面,是为了实现多用户在线聊天,说白了就是为了测试这步就省略了在后台登陆后到echo.jsp的传值loginServlet.j
2016-08-26 17:54:21
5822
原创 简易的tomcat的email发送
下面是我参考apache官网中的email组件的案例做的小案例。功能:在自己写的小程序中向指定的邮箱发送邮件,下面是以qq邮箱为例子。第一步:在项目中导入commons-email-1.4.jar 、activation.jar、amil.jar、mailapi.jar、smtp.jar第二步:qq邮箱的设置,开启smtp服务,获取授权并记下来,下面有用到再写测试代
2016-08-14 13:34:45
2981
原创 apache websocket 聊天室的简单案例
第一步:在自己建的web项目中导入tomcat7-websocket.jar、websocket-api.jar,这两个jar包在tomcat的lib中可以找到。第二步:配置WebSocket服务端创建WebSocketConfig类如下:import java.util.Set;import javax.websocket.Endpoint;import java
2016-07-31 20:22:11
3233
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人