- 博客(476)
- 资源 (49)
- 收藏
- 关注
原创 Java单元覆盖率工具JaCoCo详细理解和使用(配置+示例)
一、代码覆盖率理解代码覆盖(Code coverage)是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。简单来理解,就是单元测试中代码执行量与代码总量之间的比率。Java常用的单元测试覆盖率框架有:JaCoCo、EMMA和Cobertura,本篇文章主要介绍JaCoCo的使用。二、JaCoCo理解JaCoCo官方文档:https://www.eclemma.org/jacoco/trunk...
2021-12-07 18:46:33 81609 10
原创 设计模式——组合模式(图)
组合模式总结如下图(可点击放大):UML结构图如下:安全模式:透明模式:示例:public class CompositeClient { public static void main(String[] args) { Component c0 = new Composite(); Component c1 = new Composite(); Component leaf1 = new Leaf("1")...
2021-12-07 08:26:22 322
原创 设计模式——备忘录模式
备忘录模式总结如下图(可点击放大):UML结构图如下:示例:public class MementoClient { public static void main(String[] args) { Originator or = new Originator(); Caretaker caretaker = new Caretaker(); or.setState("S0"); System.out.pr...
2021-12-07 08:25:50 210
原创 设计模式——状态模式
状态模式总结如下(可点击放大查看):示例://状态模式public class StateClient { public static void main(String[] args) { State initState = new ConcreteState1(); Context context = new Context(initState); context.handle(); //处理请求 context.h
2021-12-07 08:25:40 96
原创 设计模式——简单工厂模式
简单工厂模式总结如下图(可点击放大):示例:public class Client { //抽象产品 public interface Product{ void show(); } //具体产品, ProductA static class ConcreteProduct1 implements Product { @Override public void show() { .
2021-12-07 08:25:28 394
原创 设计模式——观察者模式
观察者模式总结如下(可点击放大):示例:public class ObserverPattern { public static void main(String[] args) { Subject subject = new ConcreteSubject(); Observer observer1 = new ConcreteObserver1(); Observer observer2 = new ConcreteObserver.
2021-12-07 08:25:12 106
原创 设计模式——外观模式(门面模式)
外观模式总结如下:示例:public class Facade { SubSystemOne systemOne; SubSystemTwo systemTwo; SubSystemThree systemThree; SubSystemFour systemFour; public Facade() { systemOne = new SubSystemOne(); systemTwo = new SubSyste.
2021-12-07 08:25:06 88
原创 设计模式——模板方法模式
模板方法模式示例:public class Test { public static void main(String[] args) { Game game = new BasketballGame(); game.play(); System.out.println("=================================="); Game game1 = new Football();
2021-12-07 08:24:46 400
原创 设计模式——建造者模式
建造者模式总结如下图(可点击放大):示例:public class Client { public static void main(String[] args) { Builder builder = new ConcreteBuilder(); Director director = new Director(builder); Product product = director.construct(); pr.
2021-12-07 08:24:32 92
原创 设计模式——原型模式
原型模式总结如下:示例:public class Client { public static void main(String[] args) { ConcretePrototype1 p1= new ConcretePrototype1("I"); ConcretePrototype1 c1 = (ConcretePrototype1)p1.clone(); System.out.println(c1.getId()); }}
2021-12-07 08:24:23 87
原创 设计模式——迭代器模式(图)
迭代器模式总结如下图(可点击放大):UML结构图:示例:public class IteratorTest { public static void main(String[] args) { Aggregate aggregate = new ConcreteAggregate(); aggregate.add("清华大学"); aggregate.add("北京大学"); aggregate.add("浙江..
2021-12-06 18:42:09 237
原创 设计模式——单例模式(图)
单例模式总结如下图(可点击放大):UML结构图饿汉模式该模式的特点是类一旦加载就创建一个单例,保证在调用 getInstance 方法之前单例已经存在了。示例:public class HungrySingleton { private static HungrySingleton hungrySingleton = new HungrySingleton(); //构造器私有化 private HungrySingleton(){ }..
2021-12-06 18:38:04 688
原创 设计模式——桥接模式(图)
桥接模式总结如下图(可点击放大):UML结构图如下:示例:public class BridgeTest { public static void main(String[] args) { Implemetor implemetor1 = new ConcreteImplemetorA(); Implemetor implemetor2 = new ConcreteImplemetorB(); Abstraction ..
2021-12-06 18:33:00 584
原创 设计模式——命令模式(图)
命令模式总结如下:UML结构图通俗理解:(摘自网上http://c.biancheng.net/view/1383.html)Command:请求封装成的对象,该对象是命令模式的主角。也就是说将请求方法封装成一个命令对象,通过操作命令对象来操作请求方法。在命令模式是有若干个请求的,需要将这些请求封装成一条条命令对象,客户端只需要调用不同的命令就可以达到将请求参数化的目的。将一条条请求封装成一条条命定对象之后,客户端发起的就是一个个命令对象了,而不是原来的请求方法!Receive...
2021-12-06 18:30:12 456
原创 设计模式——责任链模式(图)
责任链模式总结如下(可点击放大):UML结构图如下:示例:public class ChainTest{ public static void main(String[] args) { Handler handler1 = new HandlerImpl1(); Handler handler2 = new HandlerImpl2(); handler1.setNext(handler2); handle..
2021-12-06 18:24:44 769
原创 设计模式——中介者模式(图)
中介者模式总结如下(可点击放大):UML结构图如下:示例:public class MediatorTest { public static void main(String[] args) { Mediator mediator = new ConcreteMediator(); Colleague c1 = new ConcreteColleague1(); Colleague c2 = new ConcreteColle..
2021-12-06 18:19:23 311
原创 设计模式——享元模式(图)
享元模式的总结如下图(可点击放大):UML结构图如下:示例:public class FlyweightTest { public static void main(String[] args) { FlyweightFactory factory = new FlyweightFactory(); Flyweight f1 = factory.getFlyweight("a"); Flyweight f2 = factory..
2021-12-06 18:16:09 166
原创 解释器模式(图)
解释器模式相关总结如下图(可点击放大):结构图如下:示例:public class InterpreterTest { public static void main(String[] args) { Context bus = new Context(); bus.freeRide("杭州的老人"); bus.freeRide("南京的年轻人"); bus.freeRide("上海的儿童"); .
2021-12-06 18:11:57 213
原创 访问者模式(图)
访问者模式总结图如下:示例:public class VisitorTest { public static void main(String[] args) { ObjectStructure os = new ObjectStructure(); os.add(new ConcreteElementA()); os.add(new ConcreteElementB()); Visitor visitor1 = n.
2021-12-06 17:59:30 118
原创 Java8日期相关类和方法
Java原本提供了Date和Calendar用于处理日期、时间的类,包括创建日期、时间对象。一、 Date类Java提供了Date类(java.util.Date)来处理日期、时间,Date对象既包含日期,也包含时间。Date类从JDK1.0就开始存在了,但是因为历史悠久,所以它的大部分的构造器、方法都已经过时了,不再推荐使用了。Date中没有过时的构造器Date(): 生成一个代表当前日期时间的Date对象,该构造器底层调用System.currentTimeMillis()获取long
2021-12-03 19:05:33 557
原创 MySQL连接报错Public Key Retrieval is not allowed错误
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed MYSQL报错处理
2021-12-03 18:52:20 1708
原创 Java实现哈希加密(HmacSHA1、HmacMD5、HmacSHA256、HmacSHA512)
Java实现哈希加解密(HmacSHA1、HmacMD5、HmacSHA256、HmacSHA512)
2021-12-03 18:49:12 13585 5
原创 java poi该表excel单元格内容
添加依赖<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>4.0.0</version></dependency>示例:public class ExcelTest {//实现功能将当前目录下test.xlsx表中包含"$"符号的单元格
2021-12-03 18:40:44 120
原创 Kafka安全认证(Java)
一、概述GSSAPI: 使用的Kerberos认证,可以集成目录服务,比如AD。从Kafka0.9版本开始支持 PLAIN: 使用简单用户名和密码形式。从Kafka0.10版本开始支持 SCRAM: 主要解决PLAIN动态更新问题以及安全机制,从Kafka0.10.2开始支持 OAUTHBEARER: 基于OAuth 2认证框架,从Kafka2.0版本开始支持二、配置SASL/PLAINkafka配置文件server.properties配置securi...
2021-12-03 18:28:02 7643 2
原创 Spriing Cloud Config Server工作原理
说明:本文使用的源码基于Spring Cloud Config Server 3.0.5版本在 Spring Cloud Config 中,针对服务器端和客户端组件分别构建了 spring-cloud-config-server 和 spring-cloud-config-client 这两个代码工程。我们今天主要来看Spring Cloud Config Server的工作机制。Spring Cloud Config Server工作机制Spring Cloud Config Serv..
2021-11-08 19:29:09 769
原创 Spring Cloud Config Client工作原理
说明:本版本的Spring Cloud Config Client的版本为3.0.5Spring Cloud Config Client实现的依赖关系图大致如下:接下来我们一同探讨Spring Cloud Config Client的实现原理ConfigServiceBootstrapConfiguration类的自动装配在spring-cloud-config-client-3.0.5.jar包中的META-INF的spring.factories文件中包含# Boo.
2021-11-08 19:21:41 635 2
原创 Spirng Cloud Config Server使用
在 Spring Cloud 中,自研了一个 Spring Cloud Config 框架来构建配置中心,并同时提供了配置服务器和多种配置仓库实现方案。引入maven依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependen...
2021-11-08 19:12:03 458
原创 Spring Cloud Hystrix实现原理
Hystrix实现原理在了解hystrix的工作原理之前,我们先来了解一下命令模式命令模式命令模式的定义:将请求封装成一个对象,从而让用户使用不同的请求把客户端参数化,以及支持可撤销和恢复的功能。命令模式常用的对象Command:请求封装成的对象,该对象是命令模式的主角。也就是说将请求方法封装成一个命令对象,通过操作命令对象来操作请求方法。在命令模式是有若干个请求的,需要将这些请求封装成一条条命令对象,客户端只需要调用不同的命令就可以达到将请求参数化的目的。将一条条请求封装成一条条.
2021-11-08 19:02:32 529
原创 BeanCurrentlyInCreationException异常分析及解决
异常分析Spring Boot 出现BeanCurrentlyInCreationException: Error creating bean with name: Requested bean is currently in creation异常是因为出现了两个bean相互依赖。如果 bean A依赖于bean B,而bean B又依赖于bean A,则将产生BeanCurrentlyInCreationException异常。BEAN A -> BEAN B -> B...
2021-10-25 18:47:50 12760
G3 PLC相关协议文档(MAC/Physical/Profile/白皮书)
2020-08-04
IEC 62056协议全套(带中文版)
2020-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人