
Java开发技术要点
记录开发过程中遇到的开发技术要点
勉之~
遇事不怕,就怕没有解决的能力,不断提升自己,做一个勇往直前的人,Fighting!!!
展开
-
使用Redisson实现高并发场景下的缓存穿透、缓存击穿、缓存雪崩以及缓存数据不一致性的问题
以下核心代码涉及到商品的更新以及查看,解决高并发下的缓存的问题。原创 2023-12-18 17:14:47 · 779 阅读 · 0 评论 -
密码复杂度校验工具类
要求密码长度至少10位,且必须包含大小写字母、数字和特殊字符中的至少三种类型。原创 2023-11-08 11:19:41 · 374 阅读 · 0 评论 -
解决远程git服务器路径改变导致本地无法push的问题
(4)第四步:添加新的git远程仓库地址。最后push新的代码就完成啦!(2)第二步:删除远程git地址。(3)第三步:再次查看git配置。(1)第一步:查看git配置。(5)第五步:更新本地分支。git远程仓库地址已删除。原创 2023-10-08 16:43:37 · 443 阅读 · 0 评论 -
SpringBoot跨域问题的解决方法
增加一个配置类,CrossOriginConfig.java。继承WebMvcConfigurerAdapter或者实现WebMvcConfigurer接口,其他都不用管,项目启动时,会自动读取配置。增加一个CORSFilter 类,并实现Filter接口即可,其他都不用管,接口调用时,会过滤跨域的拦截。Controller层需要跨域的类或者方法上加上**@CrossOrign**该注解要求spring版本为4.2以上。原创 2023-08-08 13:43:34 · 295 阅读 · 0 评论 -
SpringBoot实现数据库读写分离
在某些场景下,我们需要实时读取到更新过的值,例如某个业务逻辑,在插入一条数据后,需要立即查询据,因为读写分离我们用的是主从复制架构,它是异步操作,串行复制数据,所以必然存在主从延迟问题,对于刚插入的数据,如果要马上取出,读从库是没有数据的,因此需要直接读主库,这里我们通过一个Master注解来实现,被该注解标注的方法将直接在主库数据。参考博客https://blog.youkuaiyun.com/qq_31708899/article/details/121577253。#### 一 maven依赖。原创 2023-08-04 13:05:25 · 606 阅读 · 0 评论 -
图解订单系统下单模块
用户支付成功后,客户发出退货的诉求后,需商户进行退款审核,双方达成一致后,需对库存系统进行补回,支付系统、促销系统以退款单形式完成退款。对于订单系统来说,订单状态细分的颗粒度越细、越明确,订单系统管理的精度和可靠性就越高,比如:在待付款和待发货两个状态中,订单系统后台会细分为订单超时取消、订单支付失败、订单付款完成等。:用户提交订单后没有进行支付操作,此时用户原则上属于取消订单,因为还未付款,则比较简单,只需要将原本提交订单时扣减的库存补回,促销优惠中使用的优惠券,权益等视平台规则,进行相应补回。原创 2023-08-03 10:47:40 · 681 阅读 · 0 评论 -
gradle项目上传项目依赖到远程仓库
第一步:在需要上传的项目的bulid.gradle下添加maven插件,并配置连接远程仓库的信息以及项目的三要素信息,如下所示。第三步:在需要引入上传的依赖的项目中引入jar包,并进行验证即可。第二步:执行上面的文件。原创 2023-07-31 14:16:40 · 1133 阅读 · 0 评论 -
SpringBoot使用stream查询实现Mysql百万级数据导出
MyBatis实现逐条获取数据,必须要自定义ResultHandler,然后在mapper.xml文件中,对应的select语句中添加fetchSize=“-2147483648”,最后将自定义的ResultHandler传给SqlSession来执行查询,并将返回的结果进行处理。参考博客:http://knes1.github.io/blog/2015/2015-10-19-streaming-mysql-results-using-java8-streams-and-spring-data.html。原创 2023-07-14 14:57:04 · 446 阅读 · 0 评论 -
【技术分享】多线程事务怎么回滚?
1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。2,在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。原创 2023-07-13 16:52:02 · 403 阅读 · 0 评论 -
Java8之Stream API的使用
Java8之Stream API的使用原创 2023-02-23 15:56:56 · 338 阅读 · 0 评论 -
前后端分离项目解决跨域问题
前后端分离项目解决跨域问题原创 2023-02-18 19:30:03 · 258 阅读 · 0 评论 -
MyBatis Generator使用过程中踩过的一个坑
MyBatis Generator使用过程中踩过的一个坑原创 2023-02-18 18:49:16 · 170 阅读 · 0 评论 -
Java SE 8 学习笔记
Java SE 8 学习笔记一 Stream流的使用1.Stream流获取总和 double sum = retIndustryPercentages.stream().mapToInt(RetIndustryPercentage::getCount).sum();2.Stream流转换为map Map<String, Integer> map = retIndustryPercentages.stream().collect(Collectors.toMap(RetIndust原创 2022-06-17 10:30:38 · 214 阅读 · 0 评论 -
i18n获取区域
i18n国际化获取区域原创 2022-12-28 10:45:33 · 100 阅读 · 0 评论 -
前后端技术官网整理
前后端技术文档官网整理原创 2022-09-09 15:21:42 · 137 阅读 · 0 评论 -
流的工具类的使用
用于处理stream流转换的工具类原创 2022-09-06 18:17:37 · 159 阅读 · 0 评论 -
java数据库大量数据同步处理方法记录
在处理大量数据库频繁插入时进行优化,避免出现OOM的情况原创 2022-08-23 17:18:17 · 4227 阅读 · 0 评论 -
消息模板占位符的使用
消息模块的占位符实现原创 2022-07-29 10:59:00 · 820 阅读 · 0 评论 -
树形结构和普通list数据的互换
树形结构和普通list数据的互换1. list转树形结构 /** * list转树形List * @param list * @return */ public static List<RetTreePath> list2tree(List<RetTreePath> list) { List<RetTreePath> result = new ArrayList<>(); M原创 2022-04-20 18:42:40 · 1964 阅读 · 1 评论 -
妙用Java 8中的 Function接口 消灭if...else...
妙用Java 8中的 Function接口 消灭if…else…Function函数式接口原创 2022-01-07 15:47:01 · 354 阅读 · 0 评论 -
POI的入门学习笔记
POI的学习笔记一 创建Excel单元格并且设置数据1 具体步骤(1)创建工作簿workbook(2)创建表单sheet(3)创建行对象,参数:索引从0开始(4)创建单元对象,参数:索引从0开始(5)向单元中写入内容(6)创建文件流(7)写入文件2 代码具体实现public class CreateExcelTest { public static void main(String[] args) throws Exception { //(1)创建工作簿wo原创 2021-12-14 13:55:15 · 662 阅读 · 0 评论 -
Java开发文档链接笔记
开发文档链接笔记虚拟机开发文档(1)虚拟机参数设置虚拟机参数设置官方文档可以通过Ctrl+F进行网页查找需要的参数设置规则原创 2021-06-29 21:42:25 · 54 阅读 · 0 评论 -
ArrayList 底层源码扩容机制分析
1. ArrayList 简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。ArrayList继承于 AbstractList ,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。public class ArrayList<E>转载 2021-02-24 22:31:05 · 163 阅读 · 0 评论 -
HashMap之底层源码分析
HashMap之底层源码分析1 HashMap简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树),转载 2021-03-02 22:20:32 · 139 阅读 · 0 评论