06Java生态库
文章
logback
1 简介日志组件logback 是一个开源的日志组件,是 log4j 的作者开发的用来替代 log4j 的。logback 由三个部分组成,logback-core, logback-classic, logback-access。 其中 logback-core 是其他两个模块的基础。 logback-classic:它是 log4j 的一个改良版本,同时它完整实现了 slf4j API,使我们可以在其他日志系统,如 log4j 和 JDK14 Logging 中进行转换 logback-access:访问模块和 Servlet 容器集成,提供通过 Http 来访问日志的功能 日志级别级别包括:TRACE < DEBUG < INFO < WARN < ERROR 配置流程 添加 maven 依赖 查找配置文件。logback-spring.xml、logback.xml、BasicConfigurator。 加载配置内容。configuration 123<?xml version="1.0" encoding=&quo...
Lombok
1 简介2 引入maven项目依赖12345<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.8</version></dependency> 3 常用注解@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法@Setter :注解在属性上;为属性提供 setting 方法@Setter :注解在属性上;为属性提供 getting 方法 @ToString注解,为使用该注解的类生成一个toString方法,默认的toString格式为:ClassName(fieldName= fieleValue ,fieldName1=fieleValue)。@Log4j :注解在类上;为类提供一个 属性名为...
micrometer
概述 https://blog.csdn.net/weixin_45994575/article/details/117733062 做度量指标收集。Micrometer提供了与供应商无关的接口,包括 timers(计时器), gauges(量规), counters(计数器), distribution summaries(分布式摘要), long task timers(长任务定时器)。它具有维度数据模型,当与维度监视系统结合使用时,可以高效地访问特定的命名度量,并能够跨维度深入研究。 支持的监控系统:AppOptics , Azure Monitor , Netflix Atlas , CloudWatch , Datadog , Dynatrace , Elastic , Ganglia , Graphite , Humio , Influx/Telegraf , JMX , KairosDB , New Relic , Prometheus , SignalFx , Google Stackdriver , StatsD , Wavefront 主要功能 提...
mockito
官网http://mockito.org/API http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html抄笔记,https://www.letianbiji.com/java-mockito/mockito-test-isolate.html 基本概念单元测试UT工作一段时间后,才真正意识到代码质量的重要性。虽然囫囵吞枣式地开发,表面上看来速度很快,但是给后续的维护与拓展制造了很多隐患。作为一个想专业但还不专业的程序员,通过构建覆盖率比较高的单元测试用例,可以比较显著地提高代码质量。如后续需求变更、版本迭代时,重新跑一次单元测试即可校验自己的改动是否正确。 是什么Mockito是mocking框架,它让你用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。 Stub和Mock异同相同:Stub和Mock都是模拟外部依赖不同:Stub是完全模拟一个外部依赖, 而Mock还可以用来判断测试通过还是失败 与Junit框架一同使用请MockitoAnnotations.initMocks(...
slf4j
原理说明slf4j是门面模式的典型应用,因此在讲slf4j前,我们先简单回顾一下门面模式, 门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来表示门面模式的结构为: 门面模式的核心为Facade即门面对象,门面对象核心为几个点: 知道所有子角色的功能和责任 将客户端发来的请求委派到子系统中,没有实际业务逻辑 不参与子系统内业务逻辑的实现 解决这个问题的方式就是引入一个适配层,由适配层决定使用哪一种日志系统,而调用端只需要做的事情就是打印日志而不需要关心如何打印日志,slf4j或者commons-logging就是这种适配层,slf4j是本文研究的对象。 从上面的描述,我们必须清楚地知道一点:slf4j只是一个日志标准,并不是日志系统的具体实现。理解这句话非常重要,slf4j只做两件事情: 提供日志接口 提供获取具体日志对象的方法 slf4j的直接/间接实现有slf4j-simple、logback、slf4j-log4j12。slf4j-simple、logback都是slf4j的具体实现,log4j并不直...
sofabolt
sofabolt基础通信模型阻塞与同步的再讨论四个线程的模型:(非常重要。非常简单。非常关键) 有的时候,不必非得给一次通信扣上同步或者一部的的帽子。 客户端的同步异步称为阻塞和非阻塞,服务器端的同步异步称为同步异步。 只要链路上有一处是一部的,我们称整个调用链路就是异步的。 将客户端分为客户端线程和客户端连接线程,将服务端分为服务端线程和服务端连接线程。 如果客户端线程等待连接线程返回结果,则称为阻塞的。如果不等待连接线程的结果,称为非阻塞的。 如果服务端连接线程等待服务端线程的结果,则称为同步的。如果不等待服务端处理线程的结果,称为异步的。 四种客户端模型我们提供了四种通信模型,这四种模型都是客户端的调用模式。 Oneway 调用(客户端非阻塞) 当前线程发起调用后,不关心调用结果,不做超时控制,只要请求已经发出,就完成本次调用。注意 Oneway 调用不保证成功,而且发起方无法知道调用结果。因此通常用于可以重试,或者定时通知类的场景,调用过程是有可能因为网络问题,机器故障等原因,导致请求失败。业务场景需要能接受这样的异常场景,才可以使用。请参考示例。 Sync...









