自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mybatis插件PageHelper使用坑

Mybatis PageHelper 使用的坑背景:web每发起一次请求,便是一个线程。servlet 本身维护了一个线程池,每次发起的请求会从该线程池里获取,用完回收进线程池。现象:如果某次查询请求,创建了PageHelper.startPage(),那么便会像当前线程的ThreadLocal对象中存入Page对象。如果不立马进行查询,消费掉PageHelper的page对象,那么当下次发起另一个请求,拿出该线程时,如果有查询另一个数据库的操作,便会被ThreadLocal中的Page对象拦截将条

2021-02-04 16:44:11 473 1

原创 HttpServletRequst依赖引入导致的容器无法启动

HttpServletRequst 所需引入依赖的注意事项HttpServletRequest 所需依赖<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <

2020-08-20 21:29:07 1034 1

原创 Java 的代理模式的实现自我总结

静态代理特点:被代理对象和代理对象必须实现同一个接口(比较好理解)–直接上代码示例如下://被代理类和代理类必须实现的接口public interface BuyHouse { /** * 买房操作接口 * @param name 买房者 */ void buyHouse(String name);}被代理类:public class BuyHouseImpl implements BuyHouse { @Override pub

2020-07-15 17:25:31 246

原创 JSONPath 用法

以下是利用JSONPath对JSONObject的操作示例代码:public static void main(String[] args) { JSONObject json=new JSONObject(); json.put("name","张三"); json.put("sex","女"); json.put("address","浙江杭州西湖转塘"); JSONObject son=new JSONObject();

2020-06-30 16:22:10 1249

原创 Herbinet 实体类Entity 主键ID 实现支持Oracle自增序列allocationSize 属性的坑

场景:Hibernet 实体类 支持Oracle数据库主键自增代码如下: @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "***_SEQ") @SequenceGenerator(name = "****_SEQ", sequenceName = "***_SEQ") public Long getId() { return this.id; }此处只指定了

2020-06-03 16:07:03 672

原创 Nacos CP/AP模式切换及微服务临时/永久实例配置

Nacos 集群默认支持的是CAP原则中的AP原则,但是也可切换为CP原则,切换命令如下:curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'同时微服务的bootstrap.properties 需配置如下选项指明注册为临时/永久实例AP模式不支持数据一致性,所以只支持服务注册的临时实例,CP模式支持服务注册的永久实例,满足配置文件的一致性#false为永久实例,tr

2020-06-02 14:54:12 10481 5

原创 springCloud alibaba nacos服务中心使用Ribbon 作为负载均衡详解

一. 负载均衡分类服务端负载均衡:最经典的例如:Nginx用户的请求先发到nginx,再由nginx 负载均衡算法后分发到适合的服务器,由于Nginx需要作为一个服务部署在服务器端,所以称之为服务端负载均衡客户端负载均衡:由发送请求的客户端来实现负载均衡的方式称为客户端负载均衡,常应用于微服务架构应用中,例如Spring Cloud 的 Netflix 的一个开源的客户端负载均衡器客户端负载均衡的好处就是不用再经过一个负载均衡服务器,可以直接去调用服务,可以提高一定的性能和可用性调用原理:

2020-06-01 19:35:10 5277 3

原创 Nacos 服务注册IP 不对,导致调用超时

场景描述:本机项目启动,在nacos注册了一个服务实例,IP 为内网地址 192...1测试环境项目启动,在nacos也注册了一个同名服务实例,IP 为外网地址 11.***.***.219当测试环境的一个服务调用方需要调用 该注册的服务时,nacos采用默认的是轮询的方式去调用实例如果调用到注册IP为内网的服务实例时,无法调通,当超过ribbon允许的调用超时时间后便抛出异常:feign.RetryableException:connect timed out executing post

2020-05-28 15:41:33 10192 6

原创 Jackson序列化与反序列化LocalDateTime、TimeStamp 等时间类型参数报错

场景:实体类Entity 部分属性: /** * 创建时间 */ @Column(name = "gmt_create") protected Timestamp gmtCreate; /** * 修改时间 */ @Column(name = "gmt_modified") protected Timestamp gmtModified;controller层采用实体类接收参数: @PostMapping("/t

2020-05-27 11:28:14 5565

原创 Openssl 加密文件 权限问题

当上传文件需要加密,用到openssl时,上传过程报错:cannot run program ‘openssl’:createProcees error 无法找到指定文件原因解析:因为项目运行目录有权限,无法在项目运行目录下新建加密后的文件解决办法:项目运行目录更换,或者目录权限更改...

2020-05-21 18:51:53 479

原创 MultipartFile上传文件临时目录自动清理机制隐患

springboot上传文件时采用MultipartFile 类型上传 @ApiOperation("图片普通上传, adslotId 和 [ width,height ] 至少传一项, 如果同时传递了 adslotId 和 [ width,height ] ,则使用 [ width,height ] 对图片做大小限制,否则根据 adslotId 对应的资源位的尺寸对图片做大小限制 )") @PostMapping("images") public ResultEntity<O

2020-05-18 19:46:35 10062 3

原创 nacos feign 调用第三方服务,传递的参数中包含Timestamp,LocalDateTime 等java API 的时间参数

springboot 整合nacos 注册中心注册服务后,当调用第三方服务时第三方服务接口:// JourneyEntity 实体类包含Timestamp 时间戳参数,引出一个参数传递过程中的json序列化的问题 @PostMapping public void journeyTask(@RequestBody JourneyEntity journeyEntity, HttpServletRequest request){// 业务处理}调用第三方服务的feign 接口://此

2020-05-18 17:01:13 1817

原创 java防XSS攻击的 关键词过滤实现

继承HttpServletRequestWrapper,实现对请求参数的过滤/** * xss请求适配器 */public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { public XssHttpServletRequestWrapper(HttpServletRequest request) { super(request); } /** * 对

2020-05-15 15:33:49 1358

原创 悲观锁/乐观锁小记

1. 悲观锁自我理解: 即认为所有的操作都可能修改数据,给所有的操作都上锁,这样会导致只有一个线程或进程能执行操作,效率低日常悲观锁示例: 数据库的表锁,行锁,读写锁,sychronized 或者ReentrantLock 等独占锁就是悲观锁的体现应用场景:读写操作比较多适合用悲观锁,防止脏数据2. 乐观锁自我理解:默认操作都不修改数据,只有当实际修改数据时才会去上锁优点:多读操作时效率高实现方式: 1. 数据库的版本号机制 在数据库新增version版本号字段

2020-05-14 16:05:06 68

原创 springboot 整合nacos 配置及注册中心完整版

1. springboot 整合spring-cloud-alibaba nacos配置中心1.引入alibaba nacos配置中心依赖<!--配置中心功能依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <

2020-05-13 20:54:53 2948 1

原创 linux docker 容器的四种通信模式

bridge网络模式1.1 原理: docker进程启动时,主机上创建一个docker0 容器,作为网络桥接机。主机上创建一对虚拟网卡 veth 设备 ;当创建一个新的docker容器时,虚拟网卡一端搭入新的docker容器中,命名为eth0(容器网卡),另一 端放入主机,命名vethxxxx ,并将该veth设备放入docker0 容器,以docker0 作为网络桥接机特点:默认情况-连接同一网桥的容器是可以相互通信的(-icc=true),也可以设置为禁止通信:在DOCKER_OPTsS..

2020-05-11 10:53:28 462

原创 Nacos+docker单机/集群部署

一 . Docker+Nacos单机部署拉取nacos镜像docker pull nacos/nacos-server:1.1.3 -拉取指定版本的nacosdocker pull nacos/nacos-server -拉取最新版本的nacos查看当前镜像docker images可看到如下名称的镜像docker.io/nacos/nacos-server启动nacos镜像docker run --env MODE=standalone --name nacos -d -

2020-05-11 10:18:36 995

原创 springboot 整合JPA 主键生成方式常用

采用mysql主键自增属性生成@GeneratedValue(strategy=GenerationType.IDENTITY) -指明生成主键的方式为mysql的自增主键 @Id @Column(name = "id") @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id;采用序列表实现主键自增生...

2020-03-27 17:13:51 784

原创 HttpClinet连接池远程调用接口 无法获取连接资源

org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool问题描述:无法从httpClient连接池获取有效连接对象import org.apache.http.client.methods.HttpGet;import org.apache.http.impl....

2020-03-13 14:28:51 357

原创 springboot 启动Test 报错java.lang.NoClassDefFoundError: org/springframework/core/annotation/MergedAnnota

springboot 单元测试启动时报错,抛出如下异常:java.lang.NoClassDefFoundError: org/springframework/core/annotation/MergedAnnotations$SearchStrategy无法加载到注解包,后来怀疑是测试依赖引错了原来的依赖是<dependency> <group...

2020-01-19 16:21:46 8488 2

原创 线程池ThreadPool 的submit()和excute()方式执行任务对任务异常的处理

线程池类的继承实现关系Executor接口<----extend---ExecutorService接口<----implements----AbstractExecutorService抽象类(没有覆盖excute方法)<----extend---ThreadPoolExecutorsubmit()ExecutorService pool = Executors.new...

2019-12-18 17:23:57 6543

原创 springboot 项目连接Redis 集群启动报错资源覆盖不完整

报错信息摘要提示如下:io.lettuce.core.cluster.PartitionSelectorException:Cannot determine a partition to read for slot原因如提示: slot 没有重新分配到每个node节点,可能跟redis开启集群功能有关系解决办法检查每个节点的slot覆盖情况:进入redis安装目录下执行如下命令:...

2019-12-18 16:21:12 2835

原创 org.apache.common.CollectionUtils 比较两个Collection集合是否相等(元素顺序无关)

1.引入依赖<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version></dependency>2.引用类...

2019-12-18 16:05:07 2108

空空如也

空空如也

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

TA关注的人

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