自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 单元测试实施方案

单元测试实施方案1.关于单元测试​ 单元测试实施在软件生命周期中的早期,是最小的测试单元,开发人员可以独立的编写单元测试(隔离性),可以在早期就发现软件的问题并修复。​ 单元测试的三个阶段:1. 按功能编写单元测试2. 验证并修复3. 完成单元测试编写单元测试时需要注意的地方:每个单元测试都应该相互独立,是最小的测试单元,只测试public API需要测试的功能只被测试一次分三类用例:正常用例,边界用例,错误用例不依赖特定的环境(Jdbc、mq、redis、外部接口,使用mock)

2021-01-02 14:27:36 1531

原创 spring-boot-loader执行Jar文件原理

1.spring-boot-loader简介​ spring-boot-loader模块让你的springboot应用具备打包为可执行jar或war文件的能力。只需要引入Maven插件或者Gradle插件就可以自动生成。2.spring-boot-loader的优势​ Java中并没有标准的方法加载嵌入式的jar文件,通常都是在一个jar文件中。这种情况下,如果你要通过命令行的形式发布一个没...

2019-06-25 00:09:52 6324 3

原创 #Java语言规范(一)—执行

在Java语言的角度阐述在程序执行过程中发生的活动。Java虚拟机是通过加载指定的类,然后调用该指定类中的main方法而启动的。1.Java虚拟机启动​ 通过调用某个指定类的main方法,传递给它字符串数组参数,就可以启动Java虚拟机。在调用指定类的main方法之前需要加载指定类,接下来阐述执行main时涉及的加载,连接和初始化的步骤。1.1加载类​ 最初执行指定类的main方法时会发现...

2019-03-29 17:55:27 650

原创 Java 并发包中线程池ThreadPoolExecutor原理探究

介绍:​ 线程池主要解决两个问题:一是当执行大量异步任务时线程池能够提供较好的性能在不使用线程池时,每当需要执行异步任务时直接 new 个线程来运行,而线程的创建和销毁是 要开销的 线程池里面的线程是可复用的 ,不需要每次执行异步任务时都重新创建和销毁线程。二是线程 也提供了 种资源限制和管理的手段,比如可以限制线程的个数,动态新增线程等 每个ThreadPoo!Executor也保留了一些基本...

2019-02-28 10:21:27 311

原创 # Dubbo—hello world

Apache Dubbo (incubating) 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。接下来用一个实例,简单的结束dubbo的使用。将接口建为一个独立的模块建一个接口类 :/** * @author xsh * @date 2019/2/27 * @since 1.0.0 */...

2019-02-27 16:27:04 248

原创 MySQL——InnoDB引擎简介

1).InnoDB 引擎的优势如果服务器意外宕机了,只需要重启数据库即可。InnoDB 意外恢复自动完成在意外之前没有提交的操作。InnoDB 存储引擎拥有独自的缓存池,缓存池缓存表数据和索引数据在内存中,使得使用数据可以像在内存中一样。在专用于数据存储的服务器中,建议分配百分之八十的内存给缓存池。在实行分表时,可以设置相关的外键来实现参照完整,更新或删除数据,相关的数据也将会被自动的更新...

2019-01-28 11:25:43 511

原创 RabbitMQ简介

1).RabbitMQ特点可靠性: RabbitMQ使用一些机制来保证可靠性,如持久化、传输确认及发布确认等。灵活的路由: 在消息进入队列之前,通过交换器来路由消息。对于典型的路由功能,RabbitMQ己经提供了一些内置的交换器来实现。针对更复杂的路由功能,可以将多个交换器绑定在一起,也可以通过插件机制来实现自己的交换器。扩展性: 多个RabbitMQ节点可以组成一个集群,也可以根据实际业...

2019-01-21 18:41:36 301

原创 Java并发包中锁原理剖析(二)

1). 独占锁ReentrantLock​ ReentrantLock 拥有内部抽象类Sync ,Sync 直接继承自AQS,它的子类NonfairSync 和FairSync 分别实现了非公平锁和公平锁策略。AQS 的state状态值代表的是线程获取锁的重入次数,默认情况下,state为0 表示当前锁没有被任何线程持有,当有线程第一次获取锁时会使用CAS设置state的值为1 成功后会将锁持...

2019-01-17 17:05:16 218

原创 Spring Cloud Fegin 详解(一)

1). Fegin 的基础功能FeginClient 注解@Target(ElementType.TYPE)修饰,表示FeginClient注解的作用目标在接口上。FeginClient注解对应的属性:name : 指定FeginClient 的名称,如果项目使用了Ribbon , name属性会作为微服务的名称,用于服务发现。url:url一般用于调试,可以手动指定@FeginClien...

2019-01-16 17:00:12 39101 2

原创 Java并发包中锁原理剖析(一)

1. LockSupport 工具类LockSupport 主要作用是挂起和唤醒线程,该工具类是创建锁和其他同步类的基础。LockSupport 类与每个使用它的线程都会关联一个许可证,在默认情况下调用LockSupport类的方法是不持有许可证的。LockSupport是使用Unsafe类实现的。下面介绍LockSupport中的几个主要函数。viod park() 方法如果调用p...

2019-01-14 17:30:03 512

原创 Spring Cloud Eureka 原理详解(二)—— Spring Cloud Eureka 执行流程。

SpringCloud 对 Eureka 的扩展我们先介绍服务端和客户端的核心类,然后再总结执行流程。1).服务端作为一个服务注册及发现中心,主要解决一下几个问题1 . 服务实例如何注册到服务中心。本质上就是在服务启动的时候,需要调用Eureka Server 的Rest API 的refister 方法,去注册应用实例信息。2.服务实例如何从服务中心剔除正常情况下,通过钩子...

2019-01-08 11:29:33 7165

原创 Spring Cloud Eureka 原理详解(一)

Spring Cloud Eureka 详解1). Eureka 的核心类1. InstanceInfopublic class InstanceInfo { .... // 实例ID private volatile String instanceId; // 应用名 private volatile String appNa...

2019-01-04 16:33:59 1338

原创 SpringBoot 工作机制(二)

SpringBoot 部分核心类​ 介绍几个Spring Boot 中 SpringApplicationRunListener , ApplicationContextInitializer ,ApplicationListener ,CommandLineRunner 。1). SpringApplicationRunListener其实对于我们来说,没有什么必要自己实现一...

2019-01-03 14:55:04 330

原创 SpringBoot 工作机制(一)

SpringBoot 工作机制​ SpringBoot 框架是Spring框架对“约定优先于配置”理念的最佳产物。1 . @SpringBootApplication​ @SpringBootApplication 是一个“三体”结构,为一个复合注解:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUN...

2019-01-02 18:48:59 444

原创 深入Netty系列(一)—— NIO入门

一,为什么选择Netty         Netty 是业界最流行的NIO框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都是屈指可数的,它已经得到成百上千的商用项目的验证。        Netty 具有如下优点 :                   1、API 使用简单,开发门槛低                    2、 功能强大 ,预置了多种编码功能,支持多种主流协议 ...

2018-06-27 14:30:01 515

原创 Spring容器扩展(BeanPostProcessor,BeanFactoryPostProcessor,FactoryBean)—Spring官方文档系列

一、使用BeanPostProcessor定制bean        BeanPostProcessor接口定义了回调方法,你可以实现它来提供你自己的(或重载容器的默认)实例化逻辑,依赖解析逻辑等等。如果你想在Spring容器完成实例化,配置和初始化bean之后实现一些自定义逻辑,可以插入一个或多个BeanPostProcessor实现。你可以配置多个BeanPostProcessor实例,你可以...

2018-04-16 18:57:06 330

原创 Spring中Bean的作用域—Spring官方文档系列

spring bean的作用域分为以下五种:1、singleton(默认模式):单例,指一个bean容器中只存在一份2、prototype:每次请求(每次使用)创建新的实例,destroy方式不生效3、request:每次http请求创建一个实例且仅在当前request内有效4、session:同上,每次http请求创建,当前session中有效5、global session:基于portlet...

2018-04-15 18:17:42 274

原创 Spring官方文档阅读- 一些简单的配置(内部bean,集合,dpend-on,延迟初始化)

此文章参考 Spring文档翻译IoC容器为了避免在实例化Bean是出现错误,一般在实例Container是就会提前装配Scope为singleton(默认)的bean。如果此Bean有其他依赖的Bean ,则其他依赖Bean也会被装配。Inner beans (内部Bean)  :<bean id="outer" class="..."> <!-- instead of us...

2018-04-15 11:34:41 475

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除