- 博客(28)
- 收藏
- 关注
原创 Java 模板变量替换——字符串替换器(思路Mybatis的GenericTokenParser)
这里的数据使用Map来存储,key是变量名称,value是变量值,value的类型下列代码仅支持了String和List,对应的可以实现直接变量替换和循环变量替换,有其他需要可以在此基础上新增功能,而List的泛型仅支持Map,即不支持多层嵌套。提到变量替换,大家第一能联想到的可能是Mybatis的动态SQL语句的解析,又或者是mybatis.xml配置文件中用于解析"${username:root}"的默认值。
2025-01-09 19:17:49
669
原创 AOP实现(JDK动态代理和CGlib动态代理)
AOP(面向切面编程)的实现方式有多种,主要介绍一下JDK动态代理和CGlib动态代理,这两种方式也是Spring框架中使用的方式。
2023-01-11 03:04:53
311
原创 Spring多线程事务解决方案
对批量操作进行性能优化时会用到多线程来并行处理,从而提高运行效率。而时有业务要求保证批量操作事务的一致性,但不同线程所对应的是不同的事务,这就无法通过Spring提供的注解@Transactional来保证线程间的事务一致性。这也是Spring事务失效的一种情况。可以参考分布式2PC协议,通过编程式事务的方式,统一管理所有1线程事务的提交或回滚
2023-01-07 23:11:43
8447
13
原创 课设:指纹签到系统-支持PC网页端查看
设计基于ESP8266指纹签到系统,完成指纹签到和签退功能,以ESP8266 NodeMCU为核心,与TFT液晶屏、指纹模块相结合,通过无线节点,实现成员签到和签退操作监测,并通过网络以TCP通信的方式向云端服务器发送对应指令,将成员的签到情况进行记录,并可通过浏览器访问指定网站来查询,使成员的签到打卡管理更加高效便捷。指纹模块负责采集指纹信息,将信息发送到ESP8266,ESP8266接收到信息并解析后,将数据通过tcp方式发送到服务器上,并将服务器响应的数据解析显示到tft液晶屏上。
2022-10-18 15:15:56
806
原创 RabbitMQ的使用(Java语言传统操作)
简单看一下RabbitMQ的工作原理图,无论是生产者还是消费者都需要与RabbitMQ建立连接Connection,但是可以看到一个Connection内部有很多个Channel,实际上生产者和消费者是通过Channel与Broker(RabbitMQ Server本身)进行交互的。在实际应用中,创建连接的操作会被封装成一个工具类,并不是每次获取Channel都需要重新创建连接,使用已经创建好的Connection可以有效的减少连接带来的开销。创建连接通常,配置必要属性,获取连接,在通过连接创建信道。
2022-10-05 17:25:58
1580
1
原创 RabbitMQ的死信队列和延迟队列
如果设置了队列的 TTL 属性,那么一旦消息过期,就会被队列丢弃(如果配置了死信队列被丢到死信队列中),而第二种方式,消息即使过期,也不一定会被马上丢弃,因为消息是否过期是在即将投递到消费者之前判定的,如果当前队列有严重的消息积压情况,则已过期的消息也许还能存活较长时间;死信队列是在普通队列的基础上的扩展,有死信队列就一定有死信交换机,只需要将普通队列和死信交换机进行“关联”,将处理不了的消息发送至死信交换机,再由死信交换机发送到与其绑定的队列上,就完成了死信队列的使用。针对每条消息设置ttl。
2022-10-04 16:32:23
922
1
原创 RabbitMQ交换机的四种类型
Exchanges概念,无名交换机、Fanout交换机、Direct交换机、Topics交换机、Headers交换机
2022-10-02 17:04:19
689
3
原创 数据结构--稀疏数组
因为该二维数组的很多值都是默认值0,因此记录了很多没有意义的数据 —》 稀疏数组。(可以达到一个压缩的效果)当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。...
2022-08-18 16:06:40
191
原创 HTTPS如何保证数据传输安全?底层是如何实现的?据说大部分人都不知道
HTTPS 为什么安全?因为 HTTPS 保证了传输安全,防止传输过程被监听、防止 数据 被窃取,可以确认网站的真实性。HTTPS 的传输过程是怎样的?客户端发起 HTTPS 请求,服务端返回证书,客户端对证书进行验证,验证通过后本地生成用于改造对称加密 算法 的随机数。通过证书中的公钥对随机数进行加密传输到服务端,服务端接收后通过私钥解密得到随机数,之后的 数据 交互通过对称加密 算法 进行加解密。为什么需要证书?防止“中间人”攻击,同时可以为网站提供身份证明。使用 HTTPS 会被抓包吗。......
2022-08-15 11:33:33
2334
原创 Linux操作系统笔记(基本命令+环境安装项目部署+Shell编程)
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。......
2022-08-14 18:29:16
912
原创 分布式版本控制Git
Git本地有四个工作区域工作目录(WorkingDirectory)、暂存区(Stage/Index)、资源库(Repository或GitDirectory)、git仓库(RemoteDirectory)。工作区,就是你平时存放项目代码的地方暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。...
2022-07-28 17:33:19
109
原创 单例模式(八种方法分析)
所谓的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
2022-07-14 11:29:55
949
原创 适配器模式(SpringMVC、线程源码分析)
适配器模式定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。——《设计模式:可复用面向对象软件的基础》......
2022-07-14 10:05:34
827
转载 spring的事务是什么?与数据库的事务是否一样
先说一下什么是事务,事务:是对数据库的一些列操作。之前一直觉得事务只针对于数据库当中,5种隔离级别,7种传播行为,后来才发现这是针对Spring的,对数据库来说隔离级别只有4种,Spring多了一个DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.总的来说,本质上其实是同一个概念,spring的事务是对数据库的事务的封装,最后本质.........
2022-06-22 16:54:00
673
原创 Docker安装(Docker上部署一个SpringBoot项目含MySql)
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2022-04-02 20:10:32
2752
1
原创 SpringBoot将本地目录作为资源目录实现访问
由于项目涉及到了大量图片资源,即图片上传功能,总不能上传图片至Jar包内部吧,所以需要在jar包外设置资源路径来保存图片及其他资源。创建资源目录首先需要在项目的根路径创建资源目录存放图片获取项目跟目录:System.getProperty("user.dir");例:D:\item\stereoscopic-garage*stereoscopic-garage为我的项目名*String FILE_PATH_PREFIX = "static/images/photos";//获取项目根路径S
2021-08-02 22:04:50
1064
原创 SpringBoot整合Shiro MD5盐值加密
springBoot整合Shiro MD5盐值加密Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。...
2021-05-02 19:01:44
453
原创 SSM整合所需Maven依赖和配置
SSM整合所需Maven依赖和固定配置Maven依赖配置Maven静态资源过滤问题解决web.xmlresource配置文件applicationContext.xmldruid.propertiesmybatis-config.xmlspring-mapper.xmlspring-mvc.xmlspring-service.xmlMaven依赖<!--依赖--> <dependencies> <!--Junit--> <
2021-02-23 00:00:57
1128
原创 SpringMVC中文乱码彻底解决
post 传参时乱码可以自定义过滤器,也可以使用springmvc提供的过滤器使用springmvc提供的过滤器,web.xml中添加这段代码:<!--乱码过滤器--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEnco
2021-02-22 00:22:24
254
3
原创 SpringMVC注解实现
SpringMVC注解实现固定代码and整体结构目录结构web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml
2021-02-21 19:11:10
123
原创 SpringMVC执行原理
SpringMVC执行原理图参考【狂神说java】实线部分spring已经帮我们写好,虚线部分需要我们自己写,但执行原理必须懂1:DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。2:HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。3:HandlerExecution表示
2021-02-21 17:21:38
168
原创 JDBC手动获取连接和数据库连接池获取连接(mysql)
获取Connection手动获取连接方式一(简单获取)方式二(通过配置文件获取连接)通过数据库连接池获取连接通过Druid获取数据库连接补充知识点通过类加载器获取文件的信息手动获取连接几个重要参数:String driverClassName = "com.mysql.jdbc.Driver";//Driver类的路径String url = jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false;//test为数据库
2020-11-12 21:00:52
1598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人