7 liuhmmjj

尚未进行身份认证

我要认证

对计算机编程很有兴趣

等级
TA的排名 1k+

Dubbo invoke命令使用

首先使用telnet命令进入控制台命令:telnet ip 端口例如你的如果dubbo.protocol.port=29952那么就是 telnet localhost 2995然后使用invoke命令注入: 如果注入的是json 那就直接传入json串就ok了,如果是基础数据类型,也可以分别对应参数直接传 invoke XxxService.xxxMethod({“prop”: “value”}, 1, “1”) 如果注入的参数是对象(com.yunji.bigdata.po...

2020-10-15 11:50:53

Java 单例模式破坏与修复

破坏单例实现单例后,按照预期结果应该所有对象都是同一个对象。但是以下有几种情况可以破坏单例的性质。首先让单例类实现Serializable, Cloneable接口。通过序列化 、反射、克隆这三种方式破坏单例模式import java.io.*;import java.lang.reflect.Constructor;public class WreckSingleton implements Serializable, Cloneable{ private static

2020-10-12 11:39:40

centos安装nodejs

1.从官网下载https://nodejs.org/en/download/2 将包上传到linux的/usr/local路径,解压安装包xz -dnode-v12.18.3-linux-x64.tartar -xvf node-v12.18.3-linux-x64.tar3 重命名mvnode-v12.18.3-linux-x64/ nodejs4.让npm和node命令全局生效vim /etc/profileexport PATH=$PATH:/usr/loca...

2020-09-14 15:33:54

redis缓存穿透、击穿、雪崩解决方案

缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。例如:从缓存redis没有命中,需要从mysql数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决思路:如果查询数据库也为空,直接设置一个默认值存放到缓存,这样第二次到缓冲中获取就有值了,而不会继续访问数据库。设置

2020-09-03 14:45:09

Dubbo服务引用(消费端)启动netty源码分析

本文主要讲启动netty源码分析,前面会讲一下服务引用到netty启动部分的源码流程。服务引用的入口方法为 ReferenceBean 的 getObject 方法public Object getObject() throws Exception { return get(); }然后到com.alibaba.dubbo.config.ReferenceConfig#get方法public synchronized T get() { if (destr

2020-08-17 17:22:27

JAVA树形目录结构表并将其拼接成树形JSON

表结构:CREATE TABLE `t_node` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键id', `org_id` int(11) NOT NULL COMMENT 'id', `org_name` varchar(50) NOT NULL COMMENT '名称', `parent_id` int(11) NOT NULL COMMENT '父id', `type_level` int(11) NOT NULL

2020-08-05 17:55:09

bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory的解决方法

直接执行下面命令来转化, 然后就可以执行./a.sh运行脚本了。sed -i "s/\r//" start.sh或者1先用vim 查看文件2然后在底部模式:set ff 查看文件格式3设置文件格式为unix:set fileformat=unix最后:wq! 强制保存或者可以使用dos2unix命令,dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。最简单的用法就是dos..

2020-08-03 17:00:46

springboot-MyBatis集成源码

1、springboot注解@SpringBootApplication中的@EnableAutoConfiguration @EnableAutoConfiguration主要是通过AutoConfigurationImportSelector类来加载  分析mybatis也就首先从MybatisAutoConfiguration类分析(该类有Configuration注解,属于配置类)首先进入MybatisAutoConfiguration类:@org.springframewo..

2020-07-29 16:48:42

SpringBoot利用@Validated和@Valid进行校验参数

什么是ValidatorSpring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。@Validated是@Valid的一次封装,不是规范。在检验Controller的入参是否符合规范时,使用@Validated或者@Valid在基本验证功能上没有太多区别。但是在分组、注解地方、嵌套验证等

2020-07-06 16:31:31

Java利用反射进行对象深拷贝与类型转换

Java利用反射进行对象赋值与类型转换首先利用反射创建目标类对象,获取当前对象以及目标类所有的成员,然后对这些属性双层循环遍历比较变量名,变量名称相等则进行赋值。获取成员属性时注意点:class.getDeclaredFields()能获取所有属性(public、protected、default、private),但不包括父类属性,相对的class.getFields() 获取类的属性(public),包括父类;这两者并不能满足我们的需求,我们需要的是要获取到子类以及父类的所有权限属性(pub

2020-06-04 16:10:31

BigDecimal格式化与工具类

由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。以利用BigDecimal对货币和百分比格式化为例。首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比。例子:import java.math.BigDe

2020-06-04 11:25:59

mysql的聚簇索引与非聚簇索引

在mysql数据库中,myisam引擎和innodb引擎使用的索引类型不同,myisam对应的是非聚簇索引,而innodb对应的是聚簇索引。聚簇索引所谓聚簇索引,就是指主索引文件和数据文件为同一份文件,聚簇索引主要用在Innodb存储引擎中。在该索引实现方式中B+Tree的叶子节点上的data就是数据本身,key为主键,如果是一般索引的话,data便会指向对应的主索引。innodb中,没有主见索引,则会使用unique索引,没有unique索引,则会使用数据库内部的一个行的id来当作主键索引。

2020-05-28 16:26:06

springboot mybatis druid配置多数据源

1.项目代码结构:2,导入基本依赖:记得需要导入mysql驱动mysql-connector-java<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <depen

2020-05-16 08:59:01

用BigDecimal解决doule类型相减时可能存在的误差

double类型的两个数相减可能存在误差,比如System.out.println(2099 - 1999.9);的结果为99.09999999999991可以用BigDecimal解决:public class TestDouble { //两个Double数相减 public static Double sub(Double d1, Double d2) { if (d1 == null || d2 == null) { return n

2020-05-14 10:56:38

Java中finally和return执行顺序

总结: 1 finally语句在return语句执行之后return返回之前执行的 2 finally块中的return语句会覆盖try块中的return返回 3 如果finally语句中没有return语句覆盖返回值,那么原来的返回值可能因为finally里的修改而改变也可能不变 4 try块里的return语句在异常的情况下不会被执行,这样具体返回哪个看情况 5 当发生异常后,catch中的return执行情况与未发生异常时try中return的执行情况完全

2020-05-11 11:57:35

Java 通过BufferedImage缩放和裁剪图片

通过BufferedImage对图片进行缩放和裁剪读取图片//读取图片 通过JAVA自带的ImageIO里面的read方法BufferedImage bufImage = ImageIO.read(File input);BufferedImage bufImage = ImageIO.read(URL input);BufferedImage bufImage = ImageIO.read(InputStream input);BufferedImage bufImage = Imag

2020-05-11 11:10:18

Netty接收数据流程(源码)

Netty接收数据主线:多路复用器(Selector)接收到OP_READ事件处理OP_READ事件:NioSocketChannel.NioSocketChannelUnsafe.read() 分配一个初始1024字节的byte buffer来接收数据 从Channel接收数据到byte buffer 记录实际接收数据大小,调整下次分配byte buffer大小 触发pip...

2020-04-20 11:34:44

将本地代码上传到gitlab

1.新建一个文件夹:例:执行git init命令,此命令会在当前目录下创建一个.git文件夹,git init将项目的所有文件添加到仓库中,git add .这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。如果想添加某个特定的文件,只需把.换成特定的文件名即可.将add的文件commit到仓库,git commit -m "first comm...

2020-04-17 09:42:24

springboot集成redis (Lettuce)

目前java操作redis的客户端有jedis跟Lettuce。在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce。 因为我们的版本是springboot2.x系列,所以今天使用的是Lettuce。关于jedis跟lettuce的区别:Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接...

2020-04-03 15:40:21

spring注入ApplicationContext对象的几种方式

@Configuration注解所注释的配置类可通过构造函数注入ApplicationContext代码:public interface AA { int f();}public class BB implements AA { @Override public int f() { return 6; }}@C...

2020-03-23 10:07:15

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。