自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 spring jpa之实体属性类型转换器AttributeConverter,自定义Converter和通用Converter

spring jpa之实体属性类型转换器

2022-11-04 15:05:08 2143 1

原创 ubuntu16.0.4 离线部署nginx

ubuntu16.0.4 离线部署nginx

2022-08-03 16:09:56 1368

转载 Spring中@Translational注解失效场景

Spring中@Translational注解失效场景

2022-06-17 14:39:30 335

原创 RabbitMQ高级应用-消费端限流策略(basicQos)

业务场景高并发情况下,队列里面一瞬间就就积累了上万条数据,但是消费者无法同时处理这么多请求,这个时候当我们打开客户端,瞬间就有巨量的信息给推送过来、但是客户端是没有办法同时处理这么多数据的,结果就是消费者(客户端)挂掉了…这种场景下我们就需要对消费端进行限流限流策略实现限流策略关键代码:channel.basicQos();编写生产者// 生产者public class Producer { private static final String QUEUE_NAME = "queue

2022-04-18 12:02:38 2046

转载 Java中关于HashSet添加自定义对象时,自定义类为什么要重写equals方法和hashCode方法

Java编程使用HashSet添加对象时,由于要符合Set的特点(没顺序,不重复)所以必须重写equals方法和hashCode方法。第一:Set集合没有顺序,也不允许重复。为什么要这样:模拟现实的集合。这里的重复只是:对象的重复何为对象的重复:指的就是同一个对象。何为同一个对象:内存中,所在的内存编号一致。内存编号的表示是什么:哈希码(哈希码一般是 类名 和 对象所在内存地址的十六进制数字表示 的组合)。第二:这种设置和实现中的矛盾在什么地方:现实生活中只要属性相同,我们就认为那是同一

2022-03-23 18:30:47 801

原创 Java8的ParallelStream踩坑记录

ava8中的新特性stream流处理,让集合操作变得非常的简单,但是因为没有源码支持,所以里面有很多坑,只有踩过才知道首先上代码图1-1代码很简单,就是利用并行流把一个list里面的数据导入到另外一个list中,看起来看简单,接下来我们看一下执行结果图1-2此处我们发现执行结果中,导入的list数据竟然少了一个??????,从代码上看貌似没啥问题啊???多线程并发出现了这种问题,我们讲代码稍微修改一下,就可以图1-3执行结果图1-4我们来找一个出现问题的原因,此处,我们重复运行这段代

2021-12-22 18:00:02 601

转载 list分页(逻辑分页)

/** * 手动分页 * * @param originList 分页前数据 * @param pageNum 页码 * @param pageSize 每页数量 * @return 分页后结果 */ public <T> List<T> getPage(List<T> originList, Integer pageNum, Integer pageSize) { // 如果页码为空或者每页数量为空 pageNum = pageN

2021-11-08 12:00:02 341

原创 Java里的AES/CBC/PKCS7Padding加密解密

import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;import org.bouncycastle.jce.provider.BouncyCastleProvider;import java.security.Security;public

2021-11-06 10:09:12 15774

原创 jpa中orphanRemoval和cascade如何理解

按照官方给出的字面意思是:如果删除关系,是否删除关系上的实体,true表示会删除,false表示不删除。我们来举个例子说明一下,现在分别有User和Address两个实体,User类上有一个addresses的字段,表示引用多个Address实例,User和Address是一对多关系。大致的代码如下:单向一对多关系测试//单向一对多,user里有addressespublic class User{ //@OneToMany(orphanRemoval = true)//此时移除user里的某

2021-08-13 14:20:09 1029

原创 java 自定义注解 校验经纬度

在日常的开发中可能会对手机号、邮箱、身份证号、经纬度的合法性进行校验,然而每次使用if语句调用校验函数进行校验又显得过于麻烦,这时候自定义校验注解用处就很大了。1、需要的依赖<!-- hibernate validator --><dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <

2021-08-06 13:39:13 1694

原创 Java 集合之SortedSet和SortedMap

这两个接口提供排序操作,实现他们的子类都具有接口中定义的功能。Set和Map本身不具备排序功能,提供了SortedMap和SortedSet接口之后可以在提供排序方案的同时,增加更多的获取集合特定位置元素的方法。类似:结合的第一个元素,最后一个元素,位于特定元素之间的元素等。SortedSet接口所有已知实现类:ConcurrentSkipListSet, TreeSet//SortedSet提供的方法:java.util.SortedSet.comparator()//自己定义比较器,对内部元素

2021-07-29 14:03:57 347

原创 mybatis使用批量修改語句報錯 multi-statement not allow

一、問題解決項目里有個功能需要批量更新數據,本想直接在后台for循環里做更新操作,但想起之前看到的最好不要在循環中執行數據庫crud操作,因此就改用了直接在mybatis語句中使用foreach來執行批量更新操作(其實性能差不多,都是一條一條去更新),代碼如下:<update id="updateListToNotDelete"> <foreach collection="list" index="index" item="item" open="" separator=";"

2021-07-14 13:48:11 396

转载 高并发下的订单和库存处理

介绍前提:分布式系统,高并发场景商品A只有100库存,现在有1000或者更多的用户购买。如何保证库存在高并发的场景下是安全的。预期结果:1.不超卖 2.不少卖 3.下单响应快 4.用户体验好下单思路:下单时生成订单,减库存,同时记录库存流水,在这里需要先进行库存操作再生成订单数据,这样库存修改成功,响应超时的特殊情况也可以通过第四步定时校验库存流水来完成最终一致性。支付成功删除库存流水,处理完成删除可以让库存流水数据表数据量少,易于维护。未支付取消订单,还库存+删除库存流水定时校验库存流水,

2021-06-23 16:41:25 2075

原创 docker入门一

Docker是什么?Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。10 分钟看懂 Docker 和 K8SDocker 是世界领先的软件容器平台,基于 Go 语言 进行开发实现。Docker 能够自动执行重复性任务,例如搭建和配置开发环境,从而解放开发人员。用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。Docker可以对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离

2021-06-11 11:26:35 97 1

原创 Docker 快速安装&搭建 Redis 环境

Docker 快速安装&搭建 Redis 环境一、下载 Redis 镜像首先拉取 Redis 镜像, 这里我选择的是 redis:alpine 轻量级镜像版本:docker pull redis:alpine下载完成后,通过 docker images 确认镜像是否已经下载到本地:查看redis镜像是否下载成功二、运行 Redis 容器docker run -p 6379:6379 –name redis -v /usr/local/docker/redis/redis.conf

2021-06-08 11:13:47 190

原创 Docker 快速安装&搭建 Mysql 环境

Docker 快速安装&搭建 Mysql 环境一、下载 Mysql 镜像这里以 Mysql 5.7 为例:docker pull mysql:5.7下载完成后,通过 docker images 检查一下镜像是否下载成功:验证本地是否下载好Mysql 5.7镜像二、先以最简单方式启动先以简单的方式启动:docker run -d –name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7-d:以后台的方式

2021-06-08 11:05:39 136

原创 Spring Security系列 自定义决策管理器(动态权限)

前言前面我们已经实现了用户的自定义登录及密码的加密,接下来就是动态的权限验证了,也就是实现Spring Security的决策管理器AccessDecisionManager。权限资源 SecurityMetadataSource要实现动态的权限验证,当然要先有对应的访问权限资源了。Spring Security是通过SecurityMetadataSource来加载访问时所需要的具体权限,所以第一步需要实现SecurityMetadataSource。SecurityMetadataSource是

2021-04-08 16:51:29 1307

转载 什么是API

什么是API阅读编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科这篇文章我们就来通俗易懂地解释下什么叫做 API,你只需要花费1分钟时间。从文件操作开始谈API。以C语言为例,我们使用fop

2020-11-17 17:33:38 2002

转载 Java中的PO、VO、DTO、BO、POJO、BO/DO、DAO

一、简单Java对象1️⃣PO persistent object持久对象。与数据库里表字段一一对应。PO是一些属性,以及set和get方法组成。一般情况下,一个表对应一个PO,直接与操作数据库的crud相关。2️⃣VO view object/value object表现层对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不。这根据业务的需要而定。对于页面上要展示的对象,可以封装一个VO对象,将所需数据封装进去。3️⃣D...

2020-08-05 14:36:59 203

转载 响应式布局

响应式开发响应式开发的原理:媒体查询:查询媒介,查询到当前屏幕(媒介媒体)的宽度,针对不同的屏幕宽度设置不同的样式来适应不同屏幕。当你重置浏览器大小的过程中,...

2020-08-05 11:11:12 65

转载 分布式,微服务,集群概念和区别

                                          &nb.

2020-07-01 10:47:44 90

转载 csdn怎么获取积分

&nbsp;获取积分攻略:1.&nbsp;个人设置里进行手机绑定CSDN账户&nbsp;奖励50分&nbsp;(右上角设置-账户安全-手机绑定)2.&nbsp;完成任务送若干分积分&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://task.csdn.net/3.&nbsp;上传有效资源获取积分(上传...

2019-01-23 21:55:29 99

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除