2 策码狂奔

尚未进行身份认证

我要认证

沿着码路,策码奔腾!

等级
TA的排名 29w+

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

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

2020-07-15 17:25:31

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

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

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

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

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

2020-05-29 19:15:28

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

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

Openssl 加密文件 权限问题

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

2020-05-21 18:51:53

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

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

2020-05-18 19:46:35

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

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

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

2020-05-15 15:33:49

悲观锁/乐观锁小记

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

2020-05-14 16:05:06

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

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

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

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

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

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

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

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

2019-12-18 17:23:57

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

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。