自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java面试集锦

Java基础

2019-10-07 07:20:33 186

原创 mybatis-spring-boot-test详解

官网地址:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-test-autoconfigure/#

2020-03-23 18:00:25 2156

原创 spring-boot-test详解

spring-boot-test

2020-03-23 12:29:56 4668

原创 单元测试汇总

一、单元测试简介

2020-03-22 19:58:28 319

原创 Mockito详解

一. 基本介绍

2020-03-22 07:47:08 3896 2

原创 Junit5详解

一. 基本介绍junit是Java用户写单元测试用到最多的一种技术,通过一些注解让我们的多个测试用例跑起来,从而检测代码的正确性,这里我们主要介绍一下junit5。用途:Junit一般用来验证独立功能的业务逻辑,比如工具方法等官网地址:【junit5官网】二. apijunit5提供了很多好用的注解,下面只列出最重要的几个注解,如果想看所有注解的话,还是去官网比较好,这里我们只对常用...

2020-03-22 07:45:18 2832

原创 引入Swagger

一、Swagger简介当下很多公司都采取前后端分离的开发模式,前端和后端的工作由不同的工程师完成。在这种开发模式下,维持一份及时更新且完整的 Rest API 文档将会极大的提高我们的工作效率。传统意义上的文档都是后端开发人员手动编写的,相信大家也都知道这种方式很难保证文档的及时性,这种文档久而久之也就会失去其参考意义,反而还会加大我们的沟通成本。而 Swagger 给我们提供了一个全新的维护 ...

2020-03-03 19:07:36 1562

原创 微服务中跨服务传递参数

场景在微服务架构中,有比较的服务,如果我们需要把一个参数在多个服务中传递,如:auth信息、语言信息、请求ID等等,那么我们可以通过下面的方式进行处理相关技术ThreadLocalFilterRequestInterceptor实战一、封装请求相关数据保存工具我们可以利用ThreadLocal来保存数据,这里推荐使用InheritableThreadLocal,因为这个类可以让...

2020-02-21 12:16:11 3581

原创 第06篇 并行流和fork-join框架

java8 并行流fork-join框架

2019-12-03 23:54:04 324

原创 第05篇 强大的Stream

一、Stream介绍Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对 集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数 据库查询。也可以使用 Stream API 来并行执行操作。简而言之, Stream API 提供了一种高效且易于使用的处理数据的方式。总之:流(Stream...

2019-11-13 23:12:59 127

原创 第04篇 方法引用

一、什么是方法引用方法引用通过方法的名字来指向一个方法。方法引用可以使语言的结构更紧凑简洁,减少冗余代码,能更加容易的看出我们的意图。方法引用使用一对冒号::方法引用的返回值是函数式接口二、方法引用的使用类型方法引用主要有四种使用方式:构造器引用Class::new静态方法引用Class::method所有对象任意方法引用Class:method特定对象的方法引用...

2019-11-13 17:29:00 184

原创 SpringBoot- Mybatis多数据源

MyBatis配置多数据源

2019-11-12 22:50:21 287

原创 SpringBoot - 自定义Condition

自定义Condition

2019-11-12 11:09:55 638

原创 自定义日志注解(可获取方法名、参数等)

自定义注解记录日志,可以获取方法名、参数名、参数值等;

2019-11-11 20:30:37 3230 2

原创 第03篇 函数式接口

一、什么是函数式接口只包含一个抽象方法的接口,称为函数式接口。你可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明)。我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口,同时 javadoc 也会包 含一条声明,说明这个接口是一...

2019-11-11 17:27:41 90

原创 第02篇 Lambda表达式

一、Lambda表达式引入二、什么是Lambda表达式Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码 像数据一样进行传递)。可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使 Java的语言表达能力得到了提升。...

2019-11-09 22:08:55 128

原创 第01篇 Java8重要特性

Java8的新特性主要有下面几个:Lambda 表达式 :Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。方法引用 :方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。默认方法: 默认方法就是一个在接口里面有了一个实现的方法。新工具 :新的编译工具,如:Nas...

2019-10-28 23:10:42 338

原创 MySQL面试

一、mysql的索引结构是什么?mysql的索引采用的是B+树。二、聊聊mysql为什么采用B+树来存储索引?这里我们可以把各种树都聊一聊:二叉树、平衡二叉树、红黑树、B树、B+树二叉树–>数据库索引进化如下:(一)二叉树每一个节点最多有两个子节点的树,称为二叉树缺点:最坏的情况下,所有的子节点都在父节点的某一侧,比如都在左侧,会导致查询效率和链表一样;(二)平衡二叉树(AV...

2019-10-07 07:21:32 165

原创 Java基础面试

java的数据类型有哪些?各自占多少空间?java的数据类型有四类八种,分别如下:

2019-10-07 07:21:05 1049 6

原创 Nginx面试

目录Nginx常用功能负载均衡策略Nginx常用功能静态分离、负载均衡、限流、缓存、黑白名单静态代理Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好负载均衡通过upstream模块来实现的,示例配置如下:限流基于漏桶算法实现缓存浏览器缓存代理层缓存黑名单白名单负载均衡策略...

2019-10-07 07:20:48 151

原创 第01篇 入门及环境搭建

Idea插件去idea官网下载插件libcucumber plugin for idea进入页面后,点击"Get"按钮即可下载安装插件第一步下载的压缩包解压后内容如下:直接拷贝到idea安装目录的lib包下面即可。...

2019-09-25 11:53:30 395

原创 第12篇 单例模式

一、概念单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例单例通常又分为两种模式:饿汉式:在加载的时候就创建出来,着急创建出来。懒汉式:需要使用...

2019-08-25 17:51:11 180

原创 第11篇 抽象工厂模式

一、概念抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式为了方便理解,引入一些概念:(1) 产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等...

2019-08-25 17:45:32 255

原创 第10篇 工厂方法模式

一. 概述工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)。工厂方法模...

2019-08-25 17:43:41 337

原创 第09篇 简单工厂模式

一、概述简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式。简单工厂模式是一种创建型模式。二、结构图简单工厂通过一个工厂类接受调用者的入参来决...

2019-08-25 17:42:05 271

原创 第08篇 合成复用原则

一、定义合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的,又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP)。二、特点合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有...

2019-08-24 21:51:02 219

原创 第07篇 迪米特原则

一、定义迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)二、特点如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度...

2019-08-24 21:40:18 173

原创 第06篇 开闭原则

一、定义开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。二、特点OCP中所说的软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则...

2019-08-24 21:38:29 256

原创 第05篇 里氏代换原则

一、定义里氏代换原则的定义有两种:完整定义如果对每一个类型为S的对 象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的 行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解。通俗版定义里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类 (父类)的地方必须能透明地使用其子类的对象。...

2019-08-24 12:20:09 211

原创 第04篇 依赖倒置原则

一、定义依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。二、特点依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。...

2019-08-24 11:38:50 204

原创 第03篇 接口隔离原则

一、定义接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口;二、特点根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干三、案例某公...

2019-08-21 21:42:45 177

原创 第02篇 单一职责原则

一、介绍单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因.单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用...

2019-08-21 15:34:50 160

原创 第05篇 递归

一、什么是递归简单的说,程序调用自身的编程技巧称为递归( recursion)递归会遵守如下准则:每执行一次方法,就会创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响如果方法的参数是引用类型的,如数组,那么会共享这个变量递归必须有退出条件,而且需要向退出递归的条件逼近,否则就会无限递归,出现StackOverflowError当一次方法执行完毕或者是ret...

2019-08-21 14:29:33 178

原创 Testcontainer-03篇 MySQL

通常我们的后端项目中都离不开数据库的使用,然而在编写测试用例的时候却不是很好处理,这个时候,我们可以利用TestContainer来进行数据库的测试支持,这里使用我熟悉的MySQL。...

2019-08-20 18:33:28 1778

原创 第01篇 设计模式开山篇

一、设计模式的目的编写软件过程中,程序员面临着耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好的:代码重用性 (即:相同功能的代码,不用多次编写)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)使程...

2019-08-18 10:17:13 148

原创 第09篇 Compose-03 操作详解

对于Compose来说, 大部分命令的对象既可以是项目本身, 也可以指定为项目中的服务 或者容器。 如果没有特别的说明, 命令对象将是项目, 这意味着项目中所有的服务都会受到命令影响。一、compose操作命令格式:docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]选项:-f, --file FILE:指定co...

2019-08-16 17:00:08 422

原创 第09篇 Compose-02 模板文件

一、简单介绍模板文件是使用 Compose 的核心 ,涉及的指令关键字也比较多。但是大部分指令与 docker [conta工ner] createlrun相关参数的含义都是类似的。默认的模板文件名称为 docker compose.yml,格式为 Y灿1L格式,目前最新的版 本为 v3参考文档:https://docs.docker.com/compose/compose-file/二、...

2019-08-16 15:05:54 181

原创 第09篇 Compose-01 入门

一、Compose简介(一)简单介绍Compose项目是 Docker官方的开源项目,负责实现对基于 Docker容 器的多应用服务的快速编排 。 从功能上看,跟 OpenStack 中的 Heat 十分类 似。 其代码目前在https://github.com/docker/compos巳上开源。Compose定位是“定义和运行多个 Docker容器的应用”,其前身是开源项目 Fig,目前...

2019-08-16 15:04:30 222

原创 第08篇 多阶段构建镜像(multi-stage build)

一、使用Dockerfile构建镜像Docker在构建镜像的是时候,会通过一个Dockerfile文件和上下文进行构建(和Dockerfile同目录),上下文用来存放一些文件,可以是本地地址或者是git仓库地址。(一)命令命令格式:docker build [OPTIONS] PATH | URL | -选项:参看:https://docs.docker.com/engine/refer...

2019-08-14 22:48:31 722

原创 第07篇 Dockerfile

一、Dockerfile是什么?Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像。二、基本结构Dockerfile 由一行行命令语句组成, 并且支持以#开头的注释行一般而言, Dockerfile 主体内容分为四部分:基础镜像信息维护者信息镜像操作指容器启动时执行指令。...

2019-08-14 15:37:12 94

将java项目打包成可执行软件过程(可在未安装java虚拟机的电脑上运行)

将java项目打包成可执行软件过程(可在未安装java虚拟机的电脑上运行)

2013-04-19

汇编指令完整版(清晰含标签)

很全的汇编指令,解释的很好,有书签,便于查阅

2012-12-23

空空如也

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

TA关注的人

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