- 博客(20)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 1.1 spring-webmvc之HandlerAdapter
所以到这里,也基本了解了一个整体的过程,该方法参数处理器和方法返回值处理器都来自。找到了吧,是否包含这个注解:parameter.hasParameterAnnotation(RequestBody.class),顺便也把这个也顺带出来了:supportsReturnType,一看便知,这个类充当了两个角色,那就看看这个类的继承结构:它吧响应的处理逻辑也一直做了吧,大概是同一个人写的不想写两次吧,以及这个请求参数和响应处理它都用到了json转换。,该类的父类+也比较简单,无核心功能。
2023-08-05 15:57:49
195
1
原创 4 spring-security
/处理跨域请求中的Preflight请求。String message = "登录失败";//如果不确定,则默认跳回用户中心。* 这些接口 对于认证中心来说无需授权。* 常规登录失败处理器。
2023-06-10 14:18:58
141
原创 1 spring-webmvc概览
2:核心类DispatcherServlet,此类在spring-boot未兴起之前,需要配置到web.xml中,记住这个和兴概念,Servlet是最短路径匹配,/匹配所有,并且会选一个最匹配的Servlet执行(只有一个Servlet会执行,不以申明顺序未准),过滤器是完整路径匹配,/**匹配所有,每一个过滤器按申明顺序执行,在任一过滤器中可以断路。核心方法:mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
2023-05-31 20:28:35
158
原创 CaptchaUtil
package com.tong.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.FileNotFoundException;import java.io.FileOutp
2023-05-31 19:42:57
177
原创 rabbitmq实现广播删除本地缓存
追求极限性能的情况下,会使用本地缓存如guachche,而要保证准确性需要当数据改变的时候通知所有缓存该数据的服务器;可以使用redis的订阅模式实现,本文选用第二种方式rabbitmq中,exchange有4个类型:direct,topic,fanout,header。
2023-05-31 19:41:40
287
原创 mysql表结构批量拉取转excel
package net.xuele.member.base.service;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import jav.
2023-05-31 19:40:56
235
1
原创 数据库连接配置
一个业务逻辑,从线程池获取连接,后续做业务处理,和其它系统交互,是要整个业务结束连接才释放的,连接池需要一个系数=总时间/数据库时间。你需要的是一个小连接池,和一个等待连接的线程队列。让并发任务数去适配连接池连接数,而不是连接数大小去适配并发任务数。如果一个16核的数据库,4个java应用,难道单个java应用只配置32/4=8个连接吗。连接池数量 = ((核心数 * 2) + 有效磁盘数)。
2023-04-08 14:59:08
155
原创 2 spring-boot 组件配置-分页
@Beanpublic Interceptor mybatisPagePlugin() { Interceptor interceptor = new PageInterceptor(); Properties properties = new Properties(); properties.setProperty("helperDialect", "mysql"); properties.setProperty("offsetAsPageNum", "true");.
2022-02-24 19:42:22
216
原创 redis线程模型以及fork子进程
1:redis 3.x1.1:主线程,常规get,set操作1.2:bio 三个额外线程 1.2.1:fsync:连续持久化操作 1.2.2:close:文件关闭,即不活跃连接关闭1.2.3:过期key删除1.3:fork子进程,父子进程面对独立的虚拟内存,实际上共享了物理上的内存空间,当有写入时,父进程会保留原有的物理空间,而子进程会使...
2022-01-18 19:21:33
2192
原创 3.1 spring cloud gateway(已经取代zuul),网关,现成产品。
1.5.1:Route:根据Predicate判断是否该路线处理,处理过程中需经过过滤器Filter集合(过滤器有pre前置和post后置方式); 1:cookie匹配方式,可选java正则表达式; 2:某时间前、后、之间三种方式; 3:根据请求头匹配:- Header=X-Request-Id, \d+; 4:根据host匹配:Host=**.xueleyun.com,{sub}.xueleyun.com,sub具体的值可以在后续...
2021-12-23 10:02:09
815
原创 mysql 查询性能优化-笔记
查询缓存:查询和缓存中的查询即使只有一个字节不同,那也不会匹配缓存结果。查询优化处理:解析SQL:MySQL解析器将使用MySQL语法规则验证和解析查询预处理:根据一些MySQL规则进一步检查解析树是否合法查询优化器:优化SQL执行计划,优化器的作用就是找到这其中最好的执行计划。MySQL在FROM子句中遇到子查询时,先执行子查询并将其结果放到一个临时表中(16),然后将这个临时表当作一个普通表对待(正如其名“派生表”)。MySQL在...
2021-12-06 16:37:19
113
原创 redis 学习笔记
1:redis主从复制设置一台机子做为一台master的备份,如果master宕机了,需要手动切换,并且还要切换客户端的连接数据源。全量复制:增量复制:2:哨兵模式(sentinel)Redis Sentinel Documentation – Redis2.1:redis 客户端连的是哨兵集群的ip:port,通过哨兵集群获取master的ip:port;2.2:哨兵每个实例连的是master的ip:port,其他哨兵以及slave信息通过master获取;2.
2021-12-01 17:25:30
810
原创 RabbitMQ 实现延时队列
往${fileai.avatarQueue}队列发送message,该队列失效时间是30秒,失效后进入${fileai.avatarQueue}Delay,消费端是监听${fileai.avatarQueue}Delay这个死信队列。@Value("${fileai.avatarQueue}")private String avatarQueueName;@Beanpublic Queue avatarAiInputQueue() { Map<String, Object>.
2021-03-17 09:36:53
109
原创 2020-08-05 服务熔断和降级 Sentinel 整合 dubbo apollo 注解
xl-parent:http://192.168.30.233:8060/cru/XLPAR-75servie pom.xml增加依赖<!--sentinel熔断框架 --><dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-apache-dubbo-adapter</artifactId> <versi.
2020-08-05 11:19:53
354
原创 mongo多数据源实现框架,其它数据库也可参考自行实现。
获取MongoTemplate的逻辑(数据源需要事先全部配置好,并对应写死的key,如下dao1,dao2),主要是参考网上的写法适当做修改:http://blog.youkuaiyun.com/qq994406030/article/details/52861421。aop拦截提供统一的代码,框架会扫描所有实现DecisionHandler的所有bean,该接口由业务代码决定,参考SpecifiedDeci...
2018-03-20 14:25:27
650
原创 GifUtil
package com.tong.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Transparency;import java.awt.geom.AffineTransform;i
2014-02-14 16:18:31
599
转载 ClassScaner
package annotation;import java.io.IOException;import java.lang.annotation.Annotation;import java.util.HashSet;import java.util.LinkedList;import java.util.List;import java.util.Set;i
2014-02-14 15:37:53
1080
VC++计算器
2011-11-21
vc++计算器,和手机计算器功能增强版
2011-11-06
spring security filterSecurityInterceptor
2015-08-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人