- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 redis实现延时队列
将数据存到redis的zset中并指定score(double),zset会对score进行排序,让最早消费的数据位于最前,拿最前的数据跟当前时间比较,时间到了则消费。zset中的元素都会关联一个分数score,内部将通过这个score对集合元素进行的排序。如果有两个score相同的元素,将按照元素的字典序进行排序。虽然zset集合中元素不会重复,但score可以重复。redis的zset它结合了set和list的特点。如果是简单的日志推送,消息推送等,可以使用。score保证了队列中的消息有序性。
2024-07-09 11:43:50
413
原创 解决Linux报错JCE cannot authenticate the provider BC
但是由于这是运维维护的添加不了,而且jdk17是没有jre的本人新建jre目录一级级的往下添加并编辑java.security,但是重启后添加的jre目录没了,蛋疼!使用jdk17问题真多,windows和Linux是有一定的区别的,在windows中调第三方接口要用到AES加密,本地测试没报错,但部署到Linux后就报错了!解决办法看了半天都是针对jdk安装目录下的jre/lib/ext/java.security,编辑添加。
2024-03-22 10:39:41
1084
原创 Canal + RocketMQ 同步 MySQL 数据到 Redis
一般来说,缓存中的数据没什么问题,但是数据库更新后,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。由于写和读是并发的,没法保证顺序,就会出现缓存和数据库的数据不一致的问题
2024-01-29 15:22:43
497
原创 SpringBoot 循环依赖,如何解决?
循环依赖是指在Spring Boot 应用程序中,两个或多个类之间存在彼此依赖的情况,形成一个循环依赖链。在这种情况下,当一个类在初始化时需要另一个类的实例,而另一个类又需要第一个类的实例时,就会出现循环依赖问题。这会导致应用程序无法正确地初始化和运行,因为Spring Boot 无法处理这种循环依赖关系。
2023-04-25 09:48:46
1398
原创 Java整合科大讯飞SDK实现语音转文字
public static void readVoice(String strVoiceText) { ActiveXComponent ax = null; try { for (int i = 0; i < 3; i++) {//重复3次叫号 ax = new ActiveXComponent("Sapi.SpVoice"); Dispat...
2022-05-26 21:27:41
3876
6
原创 高并发秒杀redis + lua + rabbitmq实现(一)
mySeckill.lua--商品库存Keylocal product_stock_key = KEYS[1]--商品购买用户记录Keylocal buyersKey = KEYS[2]--用户IDlocal uid = KEYS[3]--校验用户是否重复秒杀local result = redis.call("sadd" , buyersKey , uid )if(tonumber(result) == 1)then --初次秒杀 local stock = ..
2022-05-10 02:10:30
1623
原创 redis + lua脚本 + AOP实现接口对客户端限流
接口每秒限制客户端访问200次创建lua,放到resource下myLimit_ip.lua-- 为某个接口的请求IP设置计数器,比如:127.0.0.1请求查询用户接口-- KEYS[1] = 127.0.0.1 也就是用户的IP-- ARGV[1] = 过期时间 1s-- ARGV[2] = 限制的次数local count = redis.call('incr',KEYS[1]);if count == 1 then redis.call("expire",...
2022-05-07 02:54:26
931
原创 多线程导入Excel
UserImportController@RestController@CrossOrigin@Slf4j@RequestMapping("/user")public class UserImportController { @Autowired UserService userService; /** * 多线程导入 * @param file * @return */ @PostMapping("...
2022-04-28 16:08:11
4682
4
原创 RabbitMQ防止重复消费
RabbitConfig/** * @author fan * @date 2022年04月27日 11:17 */@EnableRabbit@Configurationpublic class RabbitConfig { /**创建扇形交换机开始*/ //测试队列名称 private String fanoutQueueName = "fanoutQueue"; // 测试交换机名称 private String fanoutEx.
2022-04-27 19:12:00
3002
原创 解决SQL注入漏洞方法(二)使用AOP解决
当发生SQL注入时不会执行控制器的方法,直接上代码//tip:自定义一个切面类,并添加@Aspect,@Component @Pointcut("execution(public * Your package path.*.*(..)") public void test() { } @Around("test()") public Object arround(ProceedingJoinPoint pjp) { ServletRequestAttributes attribu.
2022-04-11 17:50:08
968
原创 Java多线程上传文件到FTP
1、创建连接工厂 private static int threadNum = 10; private ArrayBlockingQueue<FtpConnection> arrayBlockingQueue = new ArrayBlockingQueue<>(threadNum); public FtpFactory(){ for(int i = 0; i< threadNum;..
2022-04-10 16:39:52
3818
原创 Java实现多线程数据量比较大的分页查询
UserMapper@Repository("userMapper")@Mapperpublic interface UserMapper { @Results(id = "userResultMap", value = { @Result(property = "id", column = "id", id = true), @Result(property = "name", column = "name"), ...
2022-04-08 00:19:10
4493
1
原创 Java实现多线程下载文件
这是本人在实际开发当中遇到的多线程下载文件并记录下来public class DownloadUtil { private String pathFile; private String strFile; private DownloadThread[] downloadThreadArr; private int threadNum; private int size; public DownloadUtil (String pathFile, S.
2022-04-04 00:13:08
6490
5
原创 jquery使用DataTable弹窗、分页
HTML<div class="myClass"> <div class="myClass"> <label>名称</label> <div><input class="myClass" id="Name" type="text" readonly="readonly" placeholder="选择环节名称" onclick="mytest()"> </div> <..
2021-07-02 16:39:33
396
原创 windows安装Oracle11g,创建表空间授权导入数据
博主记录了在windows安装oracl11g的步骤,直接上截图1、将两个压缩包文件解压到同一目录下。路径名称中不要出现中文或特殊字符。 解压文件,将两个压缩包一起选择,鼠标右键 → “解压到当前文件夹”...
2021-06-17 17:54:55
436
原创 Java实现FTP读取文件
ftp: server: 10.1.6.71 port: 21 username: fan password: 12345678 #application-dev.yml中添加以上配置
2021-05-28 16:35:28
2268
原创 Java导入excel文件
@RestController@Slf4j@RequestMapping("/oppor/book")public class OptnContractBookProvider { @Autowired private ImportExcelOptnContractBookService importExcelOptnContractBookService; @PostMapping(value = "importOptnContractBookExcel", ...
2021-04-21 13:37:57
164
原创 EL表达式<fmt:formatDate> 标签的使用
在实际项目的开发中,通常使用到EL表达式的<fmt:formatDate> 标签有以下三种:引入EL的fmt标签,<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>//后台保存的对象有个时间属性 ,, 当前时间currentDate:2021:03:19 16:57:01 可以用pattern来自定义格式模式type的值可以是DATE, TIME, 或 BOTH。默认是date。如:1.
2021-03-19 17:11:26
676
原创 分页查询配合条件查询SSM+ORACLE
直接上代码DAOpublic interface IMyTableDao { public List<Map<String, Object>> findMyTableAll(Map<String, Object> paramMap); public Integer countMyTable(Map<String, Object> paramMap); }Service (接口略)实现类 @Serv...
2021-01-29 10:21:12
154
原创 JS获取日期对象
获取当前日期字符串形式var date = Date();直接调用Date()函数(注意首字母大写)。返回的是表示当前日期和时间的字符串。<script type="text/javascript"> //得到String类型的字符串 var date = Date(); console.log(date);</script>获取指定日期的日期对象var date = new Date("字符串格式日期")格式1:英文月 ...
2021-01-21 09:36:01
282
原创 使用Ajax查询表中所有数据展示在页面上
Java@Autowiredprivate IAccountService accountService;@RequestMapping(value = "/getList/query",method = RequestMethod.POST)@ResponseBodypublic List<Account> ajaxDemo(Integer cp,Integer ps) { List<Account> list = null; if (cp ==.
2020-12-24 12:42:04
1080
原创 监控输入框的字符
Jquery当input框输入特殊字符就自动清理掉function stringFilterChart(str) { var pattern = new RegExp("[`~!@#$^&*=|{}':;',\\[\\]<>/?~!@#¥……&*——|{}【】‘;:”“'。,、?]"); var rs = ""; for (var i = 0; i < str.length; i++) { rs += str.substr(i, 1).replace(pa.
2020-11-09 14:06:04
150
原创 get转post请求
话不多说直接上代码,在前端实现,无需改后台代码// 原来是get请求,现在转为postget:window.location.href = "<%=basePath%>/user/skipToLogin"; //get请求 --没参数window.location.href = "<%=basePath%>/user/skipToLogin?name="+123+"&age="+18";//get请求有参数post:第一种方法--...
2020-10-12 19:25:08
1095
原创 消除事件
消除JSP页面中的标签所有onClick绑定事件,使之onClick失效 $(function() { $("body").find("*").each(function () {//禁止所有标签使用onClick,使onClick事件失效 $(this).off("click").attr("onclick", null); });});...
2020-09-09 17:23:05
180
原创 Java添加、删除List元素
直接上代码在实现类中---根据自己需求而变,代码是死的,人是活的,不要一成不变,而是灵活运用 @Autowired private UserService userService; /**ifan-----关注博主获取更多工作中的开发经验 * 测试数据 * @param insertList * @throws BaseRunException */ public void test( ) throws BaseRunException{ .
2020-08-11 09:56:24
779
原创 JS获取项目名称,两种方法
在开发当中我们开发人员往往需要获取到项目名称来做为根路径,通常是在JSP中使用<% String path = request.getContextPath() + "/"; String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;%>"<%=path %>"或者"<%=basePath %...
2020-08-10 10:19:58
1581
偶然发现这个问题,建议修改一下
2022-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人