自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA+Git,创建branch分支、checkout切换分支、merge合并分支等图文操作详解

一)前期准备工作第一步:在Github上,创建一个 hello_branch 名称的远程仓库,为一个空仓库。第二步:在远程仓库上添加一个README-TEST.md 文件,并添加一些内容,然后点击 Commit new file按钮执行:效果图如下:第三步:打开IDEA,选择 VCS-->Get from Version Control... 菜单,在弹出框中的url输入远程仓库的地址,并克隆到一个新目录下提示是否Open Project时,选择...

2020-12-02 23:15:14 7074

原创 IDEA+Git中的push、pull、clone等图文操作详解

一)前期安装配置工作第一步:先安装Git应用程序,使用ssh-keygen -t rsa -C "[email protected]"命令生成SSH key,该key会配置到Github上。第二步:安装IDEA工具,安装完成之后进入,点击Settings-->Version Contorl-->Git 菜单中配置好Git,如下图步骤:第三步:注册Github账号,登录Github,配置好SSH key,该key是从Git生成的id_rsa_.pub文件中获取的...

2020-12-02 16:20:15 13647 2

原创 git clone、git remote、git fetch、git pull、git push等Git命令详解

一)

2020-12-01 22:30:22 1733

原创 Git 远程仓库(Github)配置、创建、连接、删除

一)Github简介github是一个基于git的代码托管平台,付费用户可以创建私人仓库,一般的免费用户只能使用公共仓库,也就是把代码要公开。使用github之前,需要先注册一个账号,github官网地址:https://github.com/之后就可以创建仓库了(免费用户只能建公共仓库),+ New Repository,填好名称后Create,之后会出现一些仓库的配置信息,是一个git的简单教程。Github一个简明指南地址:http://rogerdudler.github.io/gi

2020-12-01 11:30:21 5982 1

原创 git branch分支创建、切换、合并,git tag标签

一)Git分支简介每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。列出分支命令:git branch创建分支命令:git branch (branchname)切换分支命令:git checkout (branchname),当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。合并分支命令:git merge,你可以多次合并到统一分支, 也可以选择在合并之后直接删除被

2020-11-30 22:40:12 12359

原创 git init、git add、git commit、git log、git reset、git rm等Git命令详解

一)Git图解Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。workspace:工作区staging area:暂存区/缓存区local repository:本地仓库remote repository:远程仓库例如到D盘根目录下(随意一个目录都行),用鼠标右键,查看Git菜单Git GUI是一个界面化操作。Git Bash是通过git命令操作,推荐使用命令操作方式。打开Git Bash之后,执行git help命令,可查看git基本操作命.

2020-11-30 11:30:21 574

原创 Git安装、工作流程、(工作区、暂存区和版本库)简介

一)Git介绍Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。二)Git和SVN区别Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。1、Git是一个分布式版本控制系统,SVN不是。2、.

2020-11-21 08:50:16 173

原创 第九章:设计模式-抽象工厂模式

一)介绍抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。如何解决:在一个产品族里面,定义多个产品。优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。缺点:产品族扩展非常困难,要增加一个系.

2020-11-12 22:10:06 124

原创 第八章:设计模式-建造者模式

一)介绍建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。何时使用:一些基本部件不会变,而其组合经常变化的时候。如何解决:将变动的部件,和不变动的部件分离开。优点: .

2020-11-12 13:50:09 110

原创 第七章:设计模式-外观模式

一)介绍外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。主要解决:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。何时使用:1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。2、定义系统的统一入口。例如各大网站的单点登录功能,只需要输入账号密码,就能登录相关的子系统。3、微服务分层,每个微服务实现单一功能,整

2020-11-11 21:10:12 168

原创 第六章:设计模式-模板模式

一)介绍在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。主要解决:具有公共的行为方法,但每一个具体子类可能实现的方式存在差异性,重写该方法。何时使用:当存在相同算法时。如何解决:将相同算法抽离出来到父类,由子类实现算法的差异性。优点:1、封装不变部分,扩展可变部分。具体细节步骤实现定义在子类中,子类定义详细处理算法是不会改变算法整体.

2020-11-11 11:10:20 111

原创 第五章:设计模式-工厂模式

一)介绍工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。该设计模式属于创建型模式,它提供了一种创建对象的最佳方式。主要解决:接口选择的问题。何时使用:明确知道不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。优点:1、一个调用者想创建一个对象,只要知道其对象名称就可以了。2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。3、屏蔽产品的具体实现,调用者只关心产品的接口。缺点:每次增加一个产品时.

2020-11-05 10:55:15 124

原创 第四章:设计模式-代理模式

一)介绍在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。主要解决:在直接访问对象时带来的问题,如服务器安全问题,只能提供代理方式进行访问。何时使用:在访问一个类时需要做一些控制情况。如何解决:增加中间层,相当于增加一个代理。优点: 1、职责清晰。 2、高扩展性。 3、智能化。缺点:1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。2、实现代理模式需要额外的工作,有些代.

2020-11-05 09:51:03 111

原创 第三章:设计模式-装饰模式

一)介绍装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。何时使用:在不想增加很多子类的情况下扩展类。如何解决:将具体功能职责划分,同时继承装饰者模式。优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩.

2020-11-04 21:00:20 110

原创 第二章:设计模式-策略模式

一)介绍策略模式(Strategy Pattern),该设计模式属于行为型模式。主要解决:在有多种算法相似的情况下,使用 if...else所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换。优点:1、算法可以自由切换。2、避免使用多重条件判断。3、扩展性良好。缺点:1、策略类会增多。2、所有策略类都需要对外暴露。使用场景:1、如果在一个系统里面有许多...

2020-11-04 20:35:42 108

原创 第一章:设计模式-简单工厂模式

一)介绍工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。该设计模式属于创建型模式,它提供了一种创建对象的最佳方式。主要解决:接口选择的问题。何时使用:明确知道不同条件下创建不同实例时。...

2020-11-04 16:15:41 101

原创 SpringBoot2.1.x,创建自己的spring-boot-starter自动配置模块

一)spring-boot-starter命名规则自动配置模块命名规则:xxx-spring-boot,如:aspectlog-spring-boot启动器命名规则:xxx-spring-boot-starter,如:aspectlog-spring-boot-starter如两者只有一个模块:建议以xxx-spring-boot-starter方式命名。springboot建议以xxx前缀的方式对自己的自动配置命名的。二)spring-boot-starter条件注解注解 .

2020-09-13 09:20:31 743 1

原创 java base64对各种文件进行编码、解码,通过ByteArrayInputStream和ByteArrayOutputStream方式实现

一)Base64简介Base64是网络上一种常用于传输字节码的编码方式之一,比较简单通用。二)Base64文件类型文件类型:文件类型 Base64类型 doc data:application/msword;base64, docx data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64, xls data:application/vnd..

2020-09-02 21:20:07 15017

原创 SpringBoot2.1.x,okhttp3网络请求之MultipartFile方式上传文件,multipart/form-data表单多文件+多参数

一)引入okhttp3的jar<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.0.0</version></dependency>二)提供一个上传服务接口,文件类型为MultipartFilepackage com.oyse.

2020-08-11 20:05:13 6592

原创 SpringBoot2.1.x,okhttp3网络请求之GET、POST请求

一)okhttp3简介okhttp是一个高性能的http库,支持同步、异步请求,并且实现了spdy、http2、websocket协议,api比较简洁易用。核心工具类:OkHttpClient:用于初始化http请求信息Request:请求参数信息Call:回调函数信息RequestBody:请求报文信息Response:请求响应信息二)okhttp3案例第一步:创建一个maven项目,引入springboot的jar、再引入okhttp3的jar&lt..

2020-08-10 23:50:12 5067 2

原创 SpringBoot2.1.x,集成POI,用HttpServletRequestWrapper实现XSS攻击拦截,用HttpServletResponseWrapper实现通用excel导出功能

该案例是用Filter拦截器实现excel通用导出功能,并在实现的过程中,加入了XSS攻击拦截功能。局限性:1、excel通用导出,只能用于一种导出模板,列头+数据格式2、不适合数据超大导出导出excel通用模板格式效果图:第一步:创建一个maven项目,引入springboot的jar,并引入POI导出excel需要的jar<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/..

2020-08-07 23:35:04 1370

原创 SpringBoot2.1.x,Interceptor拦截实现,继承WebMvcConfigurer接口,实现请求接口耗时统计

一)Interceptor拦截器简介拦截器主要用于,请求之前做一些预先处理,和请求之后一些后续处理。应用场景:1、权限检查:用户登录检测、用户数据访问检测等。2、日志记录:记录请求前入参和请求后的结果等。3、数据统计:请求接口耗时,页面数据的访问量等。二)Interceptor拦截器案例第一步:创建一个maven项目,引入springboot版本的jar,并引入web模块<project xmlns="http://maven.apache.org/POM..

2020-08-07 21:20:17 798

原创 SpringBoot2.1.x,集成Filter过滤器的三种方式,包含OncePerRequestFilter方式

一)Filter过滤器简介主要作用:Filter使用户可以改变一个request和修改一个response,它能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response。例如收集数据和包装数据,并进行处理。1、Filter是依赖Servlet容器的,如Tomcat。2、Filter对所有http或https请求起作用,并是在sevlet之前处理。可以理解成过滤器中包含拦截器,当一个请求过来,先进行过滤器处理,再看程序.

2020-08-05 23:15:03 3148

原创 java poi对excel xls和xlsx格式文件导入导出

一)poi简介Apache POI项目是用于基于Microsoft的OLE 2复合文档格式开发文件格式的纯Java端口的主项目。本章主要使用excel相关操作:HSSF是对Microsoft Excel 97(-2003)文件格式(BIFF8)操作的纯Java API。XSSF是Microsoft Excel XML(2007+)文件格式(OOXML)操作的纯Java API。SS是一个使用通用API为两种格式提供通用支持的软件包。它们都支持读写功能。HSSF和XSSF ..

2020-08-04 22:25:12 3882 2

原创 第四章:SpringCloud2.1.x,Fegin声明式REST客户端,fallback和fallbackFactory使用详解

一)Fegin简介Feign是声明式Web服务客户端。它使编写Web服务客户端更加容易。要使用Feign,可创建一个Api接口并对其进行注释。Fegin启用注解:@EnableFeignClientsFegin引入jar:<!-- openfeign jar --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>sp.

2020-08-01 11:35:11 1852 1

原创 SpringBoot RestTemplate GET POST请求,案例详解

一)RestTemplate简介RestTemplate是HTTP客户端库提供了一个更高水平的API。主要用于Rest服务调用。RestTemplate方法:方法组 描述 getForObject 通过GET检索表示形式。 getForEntity ResponseEntity通过使用GET检索(即状态,标头和正文)。 headForHeaders 通过使用HEAD..

2020-07-30 22:25:28 8266

原创 第三章:SpringCloud2.1.x,Ribbon负载均衡

一)Ribbon简介Ribbon是一个客户端负载平衡器,支持对HTTP和TCP客户端的行为进行大量控制。Ribbon是通过RestTemplate方式实现的。缺点:微服务之间的交互,会需要把Rest地址写死,维护会稍微麻烦一点。Ribbon负载均衡模式:1、RoundRobinRule:默认规则,通过简单的轮询服务列表来选择服务器2、AvailabilityFilteringRule:可用性筛选规则3、WeightedResponseTimeRule:为每个服务器赋予..

2020-07-28 00:10:13 234

原创 第二章:SpringCloud2.1.x,Hystrix断路器,Feign Hystrix断路器,Hystrix Dashboard仪表盘

一)Hystrix断路器简介Hystrix是一个库,在分布式系统对服务之间调用进行控制,提供了服务之间的延迟或容错等。作用:防止系统故障,对服务进行监控警告,服务正常降级,服务延迟等处理。二)Hystrix断路器前期准备第一步:引入Hystrix的jar<!-- hystrix断路器 jar --><dependency> <groupId>org.springframework.cloud</groupId> .

2020-07-27 00:20:09 268

原创 第一章:SpringCloud2.1.x,Eureka注册中心和服务提供者

一)SpringCloud简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。spring.

2020-07-26 11:40:11 271

原创 第十四章:SpringBoot2.3.0 集成ActiveMQ详解

一)ActiveMQ Jar引入和配置pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

2020-07-12 15:25:06 567

原创 ActiveMQ Hello World

一)ActiveMQ必需的Jar为了使ActiveMQ易于使用,默认的activemq-all.jar随附了所有必需的库。<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.16.0</version></dependency>

2020-07-11 23:20:23 188

原创 ActiveMQ简介、下载、安装、访问

一)ActiveMQ简介ActiveMQ是Apache下的一款开源消息传递组件。特征:1、消息传递速度快。2、支持多种语言,如:C、C++、Java、Python、PHP等。3、支持多种传输协议,例如VM,TCP,SSL,NIO,UDP,多播,JGroups和JXTA传输。4、完全支持JMS,可轻松嵌入到Spring和SpringBoot的应用程序中。二)ActiveMQ下载官网下载地址:http://activemq.apache.org/components/c.

2020-07-11 21:20:07 324

原创 第十三章:SpringBoot2.3.0 @Cacheable和@CacheEvict声明式注释缓存,自定义KeyGenerator生成策略

一)基于声明式注释的缓存@Cacheable:触发​​缓存填充。@CacheEvict:触发​​缓存删除。@CachePut:更新缓存,而不会干扰方法的执行。@Caching:重新组合要应用于一个方法的多个缓存操作。@CacheConfig:在类级别共享一些与缓存相关的常见设置。二)@Cacheable含义:当调用该注解声明的方法时,会先从缓存中查找,判断是否有key相同缓存的数据,如果有,就直接返回数据,如果没有,执行方法,然后把返回的数据以键值的方式存储到缓存中,方便下.

2020-07-05 21:45:34 2831 1

原创 第十二章:SpringBoot2.3.0 Redis分布式锁

一)分布式锁特性1、互斥性:需保证任何时刻只能由一个客户端持有锁。2、高可用:加锁和解锁的效率较高,并保证原子性。3、容错性:当Redis大多数节点正常使用时,客户端可用加锁和解锁。二)单个客户端分布式锁...

2020-07-03 23:35:36 388

原创 第十一章:SpringBoot2.3.0 集成Redis详解

一)Redis简介Redis是一个缓存,消息代理和功能丰富的键值存储,NOSQL数据库。SpringBoot支持的Redis驱动类:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>二)Redis参.

2020-07-01 23:50:24 1485

原创 Redis BIT位操作

一)BIT简介BIT位图不是实际的数据类型,而是在String类型上定义的一组面向位的操作。而String类型的key是二进制格式的,所以任意二进制格式的数据都可以作为key。二)SETBIT和GETBIT命令第一步:使用set命令设置一个字符串,set sbit ABC,字符ABC的ASCII值分别为65、66、67。Redis中是以8位二进制的方式存储,列举表格如下:ABC二进制表格 字母 A B C ASCII 65 66 67 二.

2020-06-29 23:45:25 3938

原创 Java操作Redis数据类型

一)Java连接Redis准备第一步:需安装Redis服务和Java Redis驱动包。Java Redis驱动包下载地址:https://mvnrepository.com/artifact/redis.clients/jedis第二步:创建一个Maven项目,并在pom.xml文件中引入jedis驱动包。pom.xml:<dependency> <groupId>redis.clients</groupId> <artifa

2020-06-29 20:30:25 2400

原创 Redis数据类型简介

一)Redis数据类型简介1、二进制安全字符串。2、列表:根据插入顺序排序的字符串元素的集合。它们基本上是链表。3、哈希,是由与值关联的字段组成的映射。字段和值都是字符串。4、集:唯一,未排序的字符串元素的集合。5、排序集合,类似于集合,但是每个字符串元素都与一个称为score的浮点值相关联。6、位数组(或简称为位图):可以使用特殊命令像位数组一样处理字符串值:您可以设置和清除单个位,计数所有设置为1的位,找到第一个设置或未设置的位,等等。二)Redis键Redis密钥.

2020-06-23 21:15:11 242

原创 第十章:SpringBoot2.3.0 Mybatis+Mysql案例

一)Mybatis简介Mybatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。是一个基于Java的持久层框架。特点:1、简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。2、灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。3、解.

2020-06-17 21:35:23 783

原创 第九章:SpringBoot2.3.0 JPA+Mysql案例,并提供hibernate_sequence不存在解决方案

一)JPA简介Java Persistence API是一种标准技术,可让您将对象“映射”到关系数据库。目前Hibernate是最流行的JPA实现之一。优点:JPA在新增、修改、删除操作支持非常好。大大减少了数据库SQL的编写。缺点:JPA在查询方面支持不太友好,主要是体现在多表连接查询上,所以复杂的查询可以用EntityManager方式。实体类加载方式:传统上,JPA“实体”类在persistence.xml文件中指定。在Spring Boot中,此文件不是必需的,而..

2020-06-14 21:55:22 1531

空空如也

空空如也

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

TA关注的人

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