Java
Ensk
trip to Ensk...
展开
-
Hystrix 源码解析
Hystrix工作的流程图如下:Hystrix的工作流程结合上图如下:(1)每次调用都会创建一个HystrixCommand(2)执行execute或queue做同步/异步调用(3)判断熔断器是否打开,如果打开跳到步骤8,否则进入步骤4(4)判断线程池/信号量是否跑满,如果跑满进入步骤8,否则进入步骤5(5)调用HystrixCommand的run方法,如果调用超时进入步骤8(6)判断是否调用成功,返回成功调用结果,如果失败进入步骤8(7)计算熔断器状态,所有的运行状态(成功, 失败, 拒原创 2020-11-26 17:50:14 · 650 阅读 · 0 评论 -
Eureka 源码解析
Eureka的依赖如下:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>项目中开启Eureka只需要加一个注解:@EnableEurekaServer进入到注解里面:@Target(Eleme原创 2020-11-24 09:53:55 · 398 阅读 · 0 评论 -
Java 枚举 enum 详解
枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数;枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 1~7 天中的一个…类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型;在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代,而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。声明枚举声明枚举时必须使用 e...原创 2019-12-13 14:50:00 · 355 阅读 · 1 评论 -
Junit 多函数参数化测试详解
Junit 参数化测试的五个步骤(1)为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized(2)为测试类声明几个变量,分别用于存放期望值和测试所用数据(3)为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值(4)为测试类声明一个使用注解 org.junit.runners.Parameterized.Pa...原创 2019-11-20 14:31:54 · 2948 阅读 · 0 评论 -
Tomcat 使用 IDEA 远程 Debug 调试
服务器上的 Tomcat 设置在 tomcat/bin 目录下的 catalina.sh 开始位置添加如下设置:CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9080,suspend=n,server=y"address=9080 这个是后边 IDEA 需要用到的调试端口,可以任意设置一个未使用的端口修改后的文件...原创 2019-11-06 16:24:20 · 274 阅读 · 0 评论 -
CronExpression 表达式详解
参数序号参数名是否可选1Seconds否2Minutes否3Hours否4Day-of-Month否5Month否6Day-of-Week否7Year是例如:"0 0 12 ? * WED" 在每星期三下午 12:00 执行其中每个元素可以是一个值 (6),一个连续区间 (9-12),一个间隔时间(8-1...原创 2019-11-01 14:42:55 · 18091 阅读 · 3 评论 -
BeanUtils.copyProperties 详解
简介BeanUtils 提供对 Java 反射和自省 API 的包装,其主要目的是利用反射机制对 JavaBean 的属性进行处理我们知道,一个 JavaBean 通常包含了大量的属性,很多情况下,对 JavaBean 的处理导致大量 get/set 代码堆积,增加了代码长度和阅读代码的难度用法BeanUtils 是这个包里比较常用的一个工具类,这里只介绍它的 copyProperties...原创 2019-11-01 11:21:01 · 1546 阅读 · 0 评论 -
Java 使用 @Data 注解优化代码
Lombok 是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立 getter 和 setter 方法和构造函数啊之类的,Lombok 的作用就是为了省去我们手动创建这些代码的麻烦,它能够在我们编译源码的时候自动帮我们生成这些方法。在项目中使用时,首先在 pom.xml 中...原创 2019-10-29 15:57:13 · 1339 阅读 · 0 评论 -
Spring Cloud 服务器启动之后立刻通过 Zuul 访问其中的实例连接超时的问题解答
Spring Cloud 服务启动之后,立刻进行调用出现如下报错:com.netflix.zuul.exception.ZuulException: Forwarding errorCaused by: com.netflix.client.ClientException: nullCaused by: java.lang.RuntimeException: java.net.SocketT...转载 2019-10-22 15:29:41 · 542 阅读 · 0 评论 -
Windows 安装 Redis
1. 基本知识Redis 的数据类型字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈希表 (hashs)Redis 和 memcache 相比的独特之处redis可以用来做存储 (storge) , 而memcache是来做缓存 (cache) 。这个特点主要是因为其有 “持久化” 功能存储的数据有 “结构” , 对于memcac...原创 2019-07-17 00:12:36 · 117 阅读 · 0 评论 -
MyBatis 时间格式出现 .0 解决办法
使用 MyBatis 的时候 , 总是会遇到后面多一个 .0 的情况 , 这种情况使用 MySql 的时间格式化函数就可以了 :DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') AS createTime参数列表 :%M 月名字 (January……December) %W 星期名字 (Sunday……Saturday) %D 有英语前缀的月份的...转载 2019-07-01 12:17:29 · 6339 阅读 · 0 评论 -
JDK , Tomcat , Eclipse 版本对应关系
1. JDK , Tomcat 版本对应关系参考网址 : https://tomcat.apache.org/whichversion.html2. JDK , Eclipse 版本对应关系参考网址 : https://wiki.eclipse.org/Eclipse/Installation作者 Github : tojohnonly , 博客 : EnskDeCode...原创 2019-07-01 11:42:56 · 2178 阅读 · 0 评论 -
MacOS 的 Java 开发环境配置
下载安装 JDK以安装 Java SE 版本为例 , 先去官网下载 SDK :http://www.oracle.com/technetwork/java/javase/downloads/index.html选择 MacOS 版本 :https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaa...原创 2019-06-23 23:52:29 · 641 阅读 · 0 评论 -
Java 集合框架
Java 集合框架图Java Collections Framework Overview作者 Github : tojohnonly , 博客 : EnskDeCode原创 2019-06-04 17:40:59 · 1267 阅读 · 0 评论 -
JAVA 中的 Random() 函数
Java 中存在着两种 Random 函数用来产生随机数 , 分别是 java.lang.Math.random() 和 java.util.Random() , 下面分开介绍java.lang.Math.random()调用这个 Math.Random() 函数能够返回带正号的 double 值 , 该值大于等于 0.0 且小于 1.0 , 即取值范围是 [0.0,1.0) 的左闭右开区间 ...转载 2019-04-26 10:02:45 · 203 阅读 · 0 评论 -
微信第三方平台公众号和小程序授权测试注意事项
用户自己的公众号和小程序可以授权给开放平台第三方 , 让其代为运营在第三方全网发布前 , 我们只有将自己的公众号和小程序的原始ID添加到测试列表 , 才可进行授权这里说几点注意事项 :找到小程序或公众号的原始ID公众号是在 设置 -> 公众号设置 , 滑到下面就可以看到小程序是在 设置 -> 基本设置 , 在完善了基本设置后 , 就可以看到小程序原始ID添加到第三方...原创 2019-04-26 09:44:19 · 4754 阅读 · 0 评论 -
Windows 的 Java 开发环境配置
下载安装 JDK以安装 Java SE 版本为例 , 先去官网下载 SDK :http://www.oracle.com/technetwork/java/javase/downloads/index.html下载后 JDK 的安装根据提示默认进行 , 安装 JDK 的时候也会默认安装 JRE安装过程中可以自定义安装目录等信息 , 例如我们选择安装目录为 C:\Progra原创 2018-01-17 18:36:48 · 441 阅读 · 0 评论 -
Java 异常详解
1. 概述异常是程序中的一些错误 , 但并不是所有的错误都是异常 , 并且错误有时候是可以避免的 ;比如说 , 你的代码少了一个分号 , 那么运行出来结果是提示是错误 java.lang.Error;如果你用 System.out.println(11/0) , 那么你是因为你用 0 做了除数 , 会抛出 java.lang.ArithmeticException 的异常 ;异常发生的原创 2018-01-17 17:21:02 · 262 阅读 · 0 评论 -
Maven 设置项目编码
Maven 设置项目编码 , 需要在 pom.xml 文件中指定源码的字符集 , 设置 property 变量现有 UTF-8 编码的源代码文件如下 :package com.ensk.exp;public class HelloMaven { public static void main(String[] args) { System.out.println原创 2018-01-18 23:10:23 · 24391 阅读 · 0 评论 -
Maven 依赖范围及依赖传递
1. 依赖范围 scope共 5 种依赖范围 , compile (编译) , test (测试) , runtime (运行时) , provided , system 不指定 , 则依赖范围默认为 compilecompile : (编译依赖范围) , 在编译 , 测试 , 运行/打包时都会使用这个依赖test : (测试依赖范围) , 测试时会使用 , 编译 和 运行/打包 不原创 2018-01-18 23:20:32 · 5955 阅读 · 1 评论 -
Windows 搭建 Nexus3 私服
1. Nexus 简介Nexus 是一个强大的 Maven 仓库管理器 , 它极大地简化了自己内部仓库的维护和外部仓库的访问 ; 利用 Nexus 你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个 Artifact ; Nexus 是一套 “开箱即用” 的系统不需要数据库 , 它使用文件系统加 Lucene 来组织数据 ; Nexus 使用 ExtJS 来开发界面 , 利用 R原创 2018-01-20 18:26:49 · 4279 阅读 · 0 评论 -
Java 反射机制
1. 类对象概述类对象概念 : 所有的类 , 都存在一个类对象 , 这个类对象用于提供类本身的信息 , 比如有几种构造方法 , 有多少属性 , 有哪些普通方法 ;什么是类对象在理解类对象之前,先说我们熟悉的对象之间的区别 : garen 和 teemo 都是 Hero 对象 , 他们的区别在于 , 各自有不同的名称 , 血量 , 伤害值 ;然后说说类之间的区别 : Hero 和...转载 2018-03-23 14:37:53 · 224 阅读 · 0 评论 -
Java 访问控制中 private,default,protected 和 public 的区别
成员变量有四种修饰符 : private 私有的 package/friendly/default/不写 默认访问权限 protected 受保护的 public 公共的 类和类之间的关系有如下几种 : 自身 : 指的是自己 同包子类 : 子类 , 并且处于同一个包下 同包其他类 : 没有继承关系 , 但是处于同一个包下 不同包子类 : 子类 , 但是在另一个包下 不同包其...原创 2018-08-22 10:57:25 · 228 阅读 · 0 评论 -
Twitter 分布式自增 ID 算法 Snowflake
概述分布式系统中 , 有一些需要使用全局唯一 ID 的场景 , 这种时候为了防止 ID 冲突可以使用 36 位的 UUID (不带中划线32位) , 但是 UUID 有一些缺点 , 首先他相对比较长 , 另外 UUID 一般是无序的 ; 有些时候我们希望能使用一种简单一些的 ID , 并且希望 ID 能够按照时间有序生成 ; 而 Twitter 的 Snowflake 解决了这种需求 , ...转载 2018-09-13 15:23:10 · 155 阅读 · 0 评论 -
Java 中 i=i++; 结果
Java 中运行以下代码 :int i = 0;i++;System.out.println("i的值是 : " + i);根据我们通常所知道的后自增先使用后增加的道理 , i++ 在使用后i自身会增加一个数值 , 初始值为 0 时 , 自增后就是 1 , 那么输出的结果应该是1 , 但实际上这题的结果却是 0 :i的值是 : 1这是因为 JVM 在处理 i = i++; 时 , ...转载 2019-02-22 14:09:23 · 9394 阅读 · 18 评论 -
Log4j 使用指南
Log4j 是 Apache 的一个开源项目 , 通过使用 Log4j , 我们可以控制日志信息输送的目的地是控制台 , 文件 , GUI 组件 , 甚至是套接口服务器 , NT 的事件记录器 , UNIX Syslog 守护进程等 ; 我们也可以控制每一条日志的输出格式 ; 通过定义每一条日志信息的级别 , 我们能够更加细致地控制日志的生成过程 ; 最令人感兴趣的就是 , 这些可以通过一个配置文...原创 2019-02-22 15:52:36 · 261 阅读 · 0 评论 -
Log4j 日志归档脚本
Log4j 工具的 DailyRollingFileAppender 每天产生一个日志文件 , 但是没有提供归档的选项 , 这样长时间下来日志会越来越多 , 如下列表 :...order-debug.log.2019-01-25order-debug.log.2019-01-24order-debug.log.2019-01-23order-debug.log.2019-01-22or...原创 2019-02-28 10:57:59 · 1140 阅读 · 0 评论 -
Spring @Value 注入 static 属性
在一些项目工具类中 , 里面的方法可能都是 static 静态方法 , 现在有个方法的参数是需要动态设置的 , 放在配置文件里面 , 所以此处需要在工具类中定义 static 修饰的参数变量通过 @Value 注解的方式获取配置文件中赋的值但是直接使用 final 或 static 修饰 @Value 变量是取不到值的 , 需要用一个变通的方法 , 如下private static Strin...原创 2019-02-26 17:46:07 · 2552 阅读 · 1 评论 -
Eclipse 使用指南
1. Maven 下载源码打开左上角的 Terminal , 默认执行路径是当前项目 , 运行如下命令 :# mvn dependency:sources2. 安装 SVN 插件从 Eclipse Marketplace 里面下载安装 , 具体操作 :打开 Eclipse -> Help -> Eclipse Marketplace -> 在 Find 中输入 sub...原创 2019-03-13 11:39:17 · 1001 阅读 · 0 评论 -
Linux 的 Java 开发环境配置
下载安装 JDK以安装 Java SE 版本为例 , 先去官网下载 SDK :http://www.oracle.com/technetwork/java/javase/downloads/index.html选择 Linux 版本 :http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_b原创 2018-01-17 18:30:20 · 727 阅读 · 0 评论