- 博客(47)
- 收藏
- 关注
原创 RedisDistributedLock 分布式锁
类,实现单例模式,并包含基本的锁定机制。这个类将使用 Redis 来管理锁,确保在分布式系统中资源的同步访问。
2024-08-20 16:24:30
436
原创 IntelliJ IDEA 的Terminal 每次打开时默认位置不是当前项目目录解决方案
在 IntelliJ IDEA 中,Terminal 每次打开时默认位置不是当前项目目录,这可能会给日常开发带来一些不便。幸运的是,你可以通过修改一些设置来调整这个行为,使得每次打开 Terminal 时都默认定位到当前项目的根目录。
2024-06-26 11:44:27
1296
2
原创 Excel批量导入数据
使用try-with-resources语法打开一个文件输入流(FileInputStream)和创建一个Workbook对象,并在try块结束时自动关闭这些资源。goods.setStatus(row.getCell(6).getStringCellValue().equals("启用")?String excelFilePath = "F:/FeiShuDownloads/新版商品资料.xlsx";
2024-03-19 17:14:40
469
原创 spring jpa加锁查询
@Lock(value = LockModeType.PESSIMISTIC_WRITE)GoodsSku findLockById(Long id);
2024-03-06 14:33:28
497
原创 spring jap多个属性,不同排序方式
List orders=new ArrayList();Sort.Order order1 = new Sort.Order(Sort.Direction.DESC, "status");Sort.Order order2 = new Sort.Order(Sort.Direction.ASC, "endTime");orders.add(order1);orders.add(order2);Pageable pageable = PageReque
2023-08-12 15:04:08
217
原创 Linux crontab 每48小时执行一次
Linux crontab 的时间表达式共有五个字段,分别表示分钟、小时、日期、月份和星期几。每个字段可以使用通配符(*)表示“任意值”,也可以指定具体的数值或范围。下面是一个非常好用的crontab工具。要让 crontab 每 48 小时。
2023-04-27 14:35:32
621
原创 统一的异常处理中心,Validated自定义异常返回
import com.ruyicai.lottery.api.resp.RespBody;import com.ruyicai.lottery.util.ErrorCode;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springf
2023-04-26 19:06:42
694
原创 保证线程按顺序执行
可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续 执行,但是启动顺序可以任意,因为在每个线程的run方法中用join方法限定了三个线程的执行顺序。
2023-03-21 15:42:22
140
原创 curl 发送请求
curl -X POST -H "Content-Type: application/json" \ -d '{"msg_type":"text","content":{"text":"request example"}}' \ https://www.xx.cn/open-apis/bot/v2/hoo
2023-02-09 17:24:25
2953
原创 验证nginx配置文件是否正确
./sbin/nginx -tnginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful
2022-03-24 17:34:21
5745
原创 vim 常用命令
批量复制粘贴v->进入视图模式->y复制->p粘贴批量注释Ctrl + v->大写i->输入# ->按两下ESC取消批量注释Ctrl + v->选中# ->按d
2022-03-23 11:16:34
1535
原创 获取markdown文本里的图片和视频
public static void main(String[] args) { String content = "这是什么\n" + "\n" + "<video alt=\"trim.5EF49CB2-BA3B-4348-AB3B-AB2FFE1AC79C.MOV\" src=\"https://docs.xx.com/yWTGNd4s5fcyzCdeb1h4yAsFRDrf3ATrtrim.5EF49CB2-BA3B-4348-AB3B.
2022-03-17 17:43:26
393
原创 jpa复杂查询、条件查询、in查询
Page<Question> questionPage = questionRepository.findAll((root, query, cb) ->{ List<Predicate> predicateList = Lists.newArrayList(); predicateList.add(cb.equal(root.get("status"),1)); predicateList.add(cb.in(root.get("handle"))..
2022-03-14 15:04:18
4972
原创 跨域问题后端解决方式
import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@Componentpublic class CorsFilter implements Filter { .
2021-09-18 15:14:15
124
原创 查询真实ip
select sleep(10)select * from information_schema.processlist where time > 1 and info is not null
2021-06-23 11:07:17
186
原创 策略的实际应用
根据不同的参数实例化不同的serviceprivate ConcurrentHashMap<Integer, RecommendCondition> recommendInitial = new ConcurrentHashMap<>();public void init() { logger.info("初始化"); try { recommendInitial.put(1, SpringContextUt
2021-06-23 11:02:31
118
原创 lambda应用
LambdaQueryWrapper<CaSQueryItemGd> lambdaQueryWrapper = Wrappers.lambdaQuery();lambdaQueryWrapper.in(CaSQueryItemGd::getGroupId, gdxIdList);lambdaQueryWrapper.orderByAsc(CaSQueryItemGd::getPorder);List<CaSQueryItemGd> sQueryItemGdList = sQu.
2021-06-14 15:53:38
274
原创 修改nginx.conf文件时报错server server_names_hash_bucket_size
报错信息如下:nginx: [warn] could not build optimal server_names_hash, you should increase either server_names_hash_max_size: 512 or server server_names_hash_bucket_size处理办法:在http模块里添加server_names_hash_max_size 2048;
2021-02-05 16:51:41
855
原创 使用camel分发activeMQ消息给消费者
activeMQ配合使用camel可灵活配置消费者个数,代码也更简洁需要引入的jar包compile group: 'org.apache.camel', name: 'camel-spring-boot-starter', version: '2.18.3'compile group: 'org.apache.camel', name: 'camel-jms', version: '2.18.3'消费者-consumer@Componentpublic class StoreRo
2021-01-06 19:32:48
580
翻译 从零开始学习expect
从零开始学习expect安装expectyum install expect使用expect实现简单的自动问答对话使用之前我们先来熟悉一下4个用于交互的Expect命令命令作用翻译spawnStarts a script or a program.启动一脚本或程序,例如shell,FTP,Telnet,SSH,SCP等expectWaits for program output.等待获取你的程序的输出内容sendSends a reply to yo
2020-12-17 12:06:05
351
原创 Nginx配置通配符访问同一网页
server { listen 80; server_name yoursdomainname.com; location /share { alias /usr/local/src/share; index index.html index.htm; } location ~*/share/.+\.html { #重点在这里,无论yoursd...
2020-12-16 17:09:50
676
原创 免费的https证书申请
https://freessl.cn/apply?domains=zhanzhu.com%2Cwww.zhanzhu.com&product=trustasia01&from=快捷工具:KeyManager-Setup-4.4.19链接: https://pan.baidu.com/s/1xMq9_n4UstacHgk8kXXS5Q 提取码: cach注册后登陆:证书列表-申请证书...
2020-12-10 17:36:33
222
原创 JPA复杂查询之Predicate
1、between的使用predicate.add(cb.between(root.get("date"), dateBefore, dateAfter));2、in的使用predicates.add(root.get("type").in(typeList));CriteriaBuilder.In<Long> in = cb.in(root.get("userId"));for (BigInteger userId : userIds) { in.value(u
2020-09-03 11:58:47
5256
原创 ForkJoinTask代码实现
Fork/Join框架是并行执行任务的框架,把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Java提供了ForkJoinPool来支持将一个任务拆分成多个“小任务”并行计算,再把多个“小任务”的结果合成总的计算结果。ForkJoinPool是ExecutorService的实现类,因此是一种特殊的线程池。ForkJoinPool由ForkJoinTask数组和ForkJoinWorkerThread数组组成,ForkJoinTask数组负责将存放程序提交给ForkJoinPo
2020-07-03 19:14:32
497
1
转载 Java使用parallelStream并行结果不一致解决方法
stream.parallel.forEach()中执行的操作非线程安全,可使用ReentrantLock和实现collector接口来解决https://www.cnblogs.com/puyangsky/p/7608741.htmlimport java.util.*;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;import java.util.function
2020-07-03 18:44:56
1626
原创 Java使用线程池实现多线程
Java使用线程池实现多线程多线程-不需要返回结果实现多线程-需要返回结果实现多线程-不需要返回结果实现 public void Task(){ ExecutorService executorService = Executors.newFixedThreadPool(3); for (int i=0;i<600;i++){ executorService.submit(new FindAndSend(i)); }
2020-07-03 16:57:46
827
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人