自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录,记录,记录

坚持,再坚持

原创 Java基础:泛型理解

1.泛型 1.1什么是泛型?为什么用泛型? 泛型,即参数化类型,大体上可以认为我先暂时不觉得参数的类型,等到使用时在传入具体的参数类型,以此来可以达到代码重用的目的,并且可以将部分运行时的错误提前到编译时期,同时提高代码的可读性和安全性。 1.2怎么用泛型? 泛型有三种用法:泛...

2019-09-28 23:52:12 112 1

原创 WebMagic爬取《哪吒》豆瓣影评

1.前言 前言: 在某大佬的公总号上看到使用Python爬取《哪吒》影评的项目小样,心痒痒,我也想用Java来搞一搞,遂动手。 项目基础: 1. JavaClient,Jsoup了解下。 2. WebMagic框架熟悉:WebMagic官网 ,挺简单的。3,老三件套ssm,mybatis用...

2019-08-26 19:25:16 95 0

原创 Spring Boot:缓存-Ehcache和Redis

一:前言 在我们编写的应用中,组件一般都是无状态的,一个请求过来,经过逻辑处理返回所需要的结果,但下一次再来的相同请求的时候,需要再走一边流程。对于所需求的结果,我们可能需要经过计算/访问数据库/远程服务调用来获取,但对于结果变更不频繁的,做相同的事就是资源浪费。 解决方案:缓存,现在主流的缓存...

2019-07-03 23:40:00 70 0

原创 Spring Boot:Spring Validation数据校验

一:前言 SpringValidation是对hibernate validation的二次封装,添加自动校验的功能,并将校验结果封装到特定的结果类中。 hibernate validation是校验框架,是JSR303标准的实践结果。 引入hibernate validatior:导入spri...

2019-06-30 14:01:37 184 0

原创 Spring Boot:异常统一处理

一:前言 这里先对需要使用到的注解或者类进行说明,顺便理清楚条理。 @ExceptionHandler:注解使用在方法上,值为指定某个异常,当该方法所在的controller出现的异常与注解的异常对应,则会触发注解的方法。 下面这个controller一旦出现异常都会将异常捕获转给该方法进行处理 ...

2019-06-29 17:49:33 276 0

原创 Spring Boot:文件的上传

一:请求的设置 一般请求中请求的参数都是以K=V的形式来进行传递,但传递二进制数据(文件,图片)时就会显得力不从心,所以二进制数据已multipart格式请求传递。 multipart格式请求与一般请求的不同之处: content-type请求头参数 实体内容为二进制数据。 请求要求: 请求...

2019-06-27 22:24:53 104 0

原创 Spring Boot:请求的处理

一:SpringMVC工作流程 先来看一下流程图 SpringMVC的组件: Dispatch Servlet:前端控制器 Handler Mapping:映射处理器 Handler Adapter:适配处理器 Controller:控制器 View Resolver:视图解析器 Sprin...

2019-06-25 23:09:52 481 0

原创 Spring Boot:Mybatis-Plus的分页功能

一:目标 现在项目都是前后端分离,在前端进行分页查询的时候,后端需要返回的页面信息有,当前页面,总页数,页面显示的数量,数据信息。So,也就说我们要使用分页插件查询数据库,将查询回来的数据封装成下列对象返回给前端。 @Data @AllArgsConstructor public class Pa...

2019-06-25 16:02:13 93 0

原创 Mybatis-Plus:Mybatis-Plus简单demo及其核心功能

一: 简单demo 第一步:打开Mybatis-Plus官网:mybatis-plus官网,点击快速开始选择springboot版本,于是我们就愉快地开始了。 官网pom文件: 官网yml文件配置: 那就是搞定这两个,我们就等于搞定了mybatis-plus入门了。 第二部:建立demo 首...

2019-06-19 23:16:17 3813 0

原创 dubbo: 做一个springboot整合dubbo demo(艰难)

一:前话 我可能大概估计花了N个小时来跑一个springboot-dubbo demo,网上的demo依赖版本千奇百怪,各种跑不通,各种版本不兼容,差点要死在制作demo的路上,想想还有爬起来继续撸教程,终于皇天不负有心人,撸通了一个demo。 项目地址 :springboot-dubbo-dem...

2019-06-18 20:11:38 202 0

原创 Java并发:ThreadLocalRandom

讲ThreadLocalRandom之前,需要了解一下Random类的用法及其原理。 一:Random 使用方法: 下例子为循环输出10次0~9之间的数值。 public class RandomTest { public static void main(String[] args) {...

2019-05-25 22:38:51 532 0

原创 Java并发:并发基础(二)

一:并发与并行 并发: 在同一时间段内多个任务同时在执行,并且没有执行结束。 CPU是通过时间片的方式来进行控制线程的运行,单位时间内只有一个线程在运行,其他线程都处于挂起状态,线程轮流获得CPU的使用权限。 并行: 在单位时间内多个任务同时执行。 一个任务分为多段,交由不同的CPU同时执行. ...

2019-05-20 23:54:59 23 0

原创 Java并发:并发基础(一)

一:线程与进程 进程:一个系统至少拥有一个进程,是系统调度和分配志愿的基本单位。 线程:每个线程只有拥有一个线程,线程依附进行进程存在,是真正操作数据的单元。 JVM内存:虚拟机内存结构分为堆,栈,方法区,程序计数器。 堆:所有线程共享,存储对象的数据。 方法区:所有线程共享,存储静态变量,常量,...

2019-05-15 22:30:23 30 0

原创 Java源码:Reference与ReferenceQueue

一:Reference Reference的四种状态 Active:活跃,内存一开始分配的常有状态,垃圾收集器进行可达性分析后会进入Pending或Inactive状态,取决于已经注册到一个队列。 Pending:待定,进行回收时,会先进入pending-Reference队列,等待着Ref...

2019-05-13 22:45:28 25 0

原创 Java8新特性:收集器ollect

一:collect 功能:将流中的数据按照传递的方法进行收集,例如收集成List,Set,Map等等。 collect接口情况: <R> R collect(Supplier<R> supplier, BiConsumer&l...

2019-05-02 14:31:34 48 0

原创 Java8新特性:reduce方法

一:reduce rudece方法:从一个流中生成一个值 三个重载方法: Optional<T> reduce(BinaryOperator<T> accumulator); T reduce(T identity, BinaryOperator<T> a...

2019-05-02 00:47:56 443 0

原创 SpringBoot:集成通用Mapper

一:通用Mapper简介 通用Mapper就像是一个mybatis的辅助工具,能很好地帮我我们进行对数据库的操作,简化操作,并且通用Mapper中提供了很多通用的方法供我们选择. 二:项目构建 导包 访问仓库地址查询版本:https://mvnrepository.com/ <d...

2019-04-25 23:50:08 359 0

原创 SpringBoot:自定义拦截器

一:理论实现 实现接口-HandlerInterceptor,重写其中的三个方法 实现接口WebMvcConfigurer,重写addInterceptors方法,注册拦截器 二:实战 书写我自己的拦截器 @Component public class MyInterceptor impl...

2019-04-25 13:43:07 1294 0

原创 idea:创建聚合工程

一.目的 最近因为在做微服务项目需要用到聚合工程,主要为了统一版本,便于管理,项目的POM看着比较简洁,所以了解并记录一下。 二.实战 使用SprignBoot创建的项目为父工程,Maven或者SpringBoot项目为子工程. 2.1创建父工程 New→Project→创建Spring...

2019-04-24 22:42:16 902 0

原创 Spring Cloud GateWay 之 Predicate与Filter

一.请求过程 大致流程: 请求去访问GateWay Client 访问GateWay Handler Mappeing 寻找有没有与路径相匹配的路由 根据predicate来决定访问那个路由 再经过pre类型的过滤器,进行请求代理 再经过post类型过滤器 二.predicate pre...

2019-04-22 22:23:42 790 0

原创 SpringCloud组件七之GateWay-网关(G版本)

一.GateWay简介 Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。 Route(路由):这是网关的基本构建块。它由一个 ID,一个目...

2019-04-21 19:38:46 2735 0

原创 GitHub:如何托管一个项目

一.目的 希望利用GitHub来进行项目的托管。 保存一些自己做的Demo,项目。 和小伙伴一起进行共同开发。 瞻仰大佬们的项目细节。 二.实现 实现方式:idea整合GitHub+GitHub客户端 需要的东西 intellij idea编译器 GitHub账号 Git安装包 GitHu...

2019-04-20 20:51:35 89 0

原创 SpringBoot:读取配置文件属性

一:读取配置文件涉及的注解 @Value 使用方式:@value(占位符),例子:@value("${user.name}"),注释在单个变量。 @PropertySource 配置文件在不声明的情况下application,使用可进行自定义配置文件的设置。 使用...

2019-04-19 21:45:18 129 0

原创 SpringBoot:url中获取参数的注解

一.注解 @ PathVariable @RequestParam @RequestBody springboot中获取参数的注解主要为这三个。 二.@PathVariable controller映射的路径上具有一个占位符,@PathVariable可以接收请求路径中占位符的值并将之赋值给...

2019-04-19 20:32:10 1183 0

原创 SpringCloud组件六之Config- 配置中心(G版本)

一:简介 在分布式项目中,配置文件多,需进行集中管理配置。 SpringCloud Config就是总多的解决方案的一种,在spring cloud config 组件中,分两个角色,一是config server,二是config client,且配置文件通常存储在GitHub中。 二:Co...

2019-04-18 23:00:24 784 0

原创 SpringCloud组件五之Zuul-网关(G版本)

一.Zuul简介 Zuul是Netflix开源的微服务网关,可以和Eureka、Ribbon、Hystrix等组件配合使用,Spring Cloud对Zuul进行了整合与增强,Zuul的主要功能是路由转发和过滤器。 二.项目现状 一个注册中心(registry),服务提供微服务(provider)...

2019-04-14 22:37:19 380 0

原创 SpringCloud组件四之Hystrix-熔断器(G版本)

1.熔断器 熔断器是为了防止“雪崩效应”的发生所提出的模型。 雪崩效应 下图为个独立服务之间的依赖关系,假设服务A出故障,不可使用,随着时间推移,服务A,B,C,D都会不可用,使得系统瘫痪。 2.Ribbon项目 POM文件中添加依赖 <depen...

2019-04-12 22:58:10 284 0

原创 SpringCloud组件三之Feign-服务消费(G版本)

1. 服务消费 SpringCloud组件中服务消费组件有二:Ribbon和Feign。在上一篇中讲解了如何使用Ribbon,现在讲解如何去使用Feign。 2.现状 我们有一个注册中心(resitry),一个服务提供者(provider),provider中编写一个接口/hello @Rest...

2019-04-12 21:17:14 482 0

原创 SpringCloud组件二之Ribbon-消费者(G版本)

1.服务消费 在上一篇文章,讲明了服务的注册和发现。这一篇我们讲如何去消费服务,在Spring cloud有两种服务调用方式,一种是ribbon,另一种是feign。在这一篇先进行对Ribbon的讲解。 2.目前现状 我们有一个注册中心(resitry),一个服务提供者(provider),pro...

2019-04-10 22:32:00 268 0

原创 爬坑之Ubuntu下安装并使用fastDFS

目标 搭建一个单机版本的fastDFS服务器,用来自己玩玩,感受一下 1.原料 ubuntu18.04 桌面版本 VMware虚拟机 步骤跟着网上安装就好,简单!!!,装好就这种德行。 2.安装 libfastcommon fastDFS 安装包建议从官网下载,也可以从git克隆过来。 ...

2019-02-04 14:11:40 168 0

原创 SpringCloud组件一之Eureka注册中心(G版本)

1.系统架构演变 SpringCloud产生的原因无非是需要,有需求才会有实现,主要的原因还是项目在不断扩充,复杂化。 1.1. 集中式架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键...

2019-01-16 21:56:54 564 0

原创 Java并发-CountDownLatch、CyclicBarrier和Semaphore

在JDK1.5中提供了高级同步对象来进行开发效率的提高,例如CountDownLatch,CyclicBarrier和Semaphore,下面就来看一下这三个类的用法。 1.Semaphore Semaphore,中文名信号量,Semaphore可以控制访问该资源的线程数量。 通过构造方法来...

2018-12-18 21:08:06 45 0

原创 Java并发-原子类atomic

1.非阻塞方式 原子操作 原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何线程的切换。 每个线程都会具有各自的工作内存,Java中所有变量都会存储在主内存中,线程的工作内存都是主内存中变量的副本。线程在各自的工作内存中进行变量的操作后,后再将变量传回...

2018-12-17 22:01:13 50 0

原创 Java并发-synchronized和Lock的区别

1. 同步的方式 总所周知,我们平常所用的同步方式:① synchronized关键字 ② Lock 这是一段未被同步的代码,i的值一般不会为10000。这是因为每段线程的都有各自的工作的内存,并且i++不是为原子操作,它们修改i的值的步骤分为三步:读入数据,修改,写入主内存。它们也并不会是井井有...

2018-12-17 21:01:07 31 0

原创 Java并发-多线程

1.多线程 线程状态 每个线程可以看做不同的任务,cpu需要分配每个线程不同的使用时间,cpu需要不同的线程之间来回切换,造成线程可能存在的不同状态。 新建线程 继承Thread,重写run方法,new Thread来进行新建线程。 实现Runnable,重写ru...

2018-12-08 23:01:52 52 0

原创 Java集合之TreeMap

1.TreeMap TreaaMap基于红黑树实现,是一个有序的Key-Value集合,根据Comparator 来进行排序,可以根据构造器来传入比较器来实现其他方法的比较。 //默认比较器 private final Comparator&lt;? super K&gt...

2018-12-07 22:43:45 35 0

原创 java集合之HashMap

1.HashMap HashMap的底层结构为散列表,也就是数组+链表的形式的数据结构,保存的数据已映射的形式保存(entry(K,V))。 HashMap中保存的entry,Key唯一并可为null,Value不唯一并可以为null。 散列表再添加数据时,散列表会给每个对象计算一个散列...

2018-12-06 22:00:01 40 0

原创 Java集合之List

1.核心成员 ArrayList 底层结构为数组,可以进行随机访问,能被克隆,能进行序列化传输,线程不安全,Vector就是它的线程安全版本,多个方法带有synchronized关键字,只是效率有点低。由于能进行随机访问,可快速查询,增删较为费劲。 public class Arra...

2018-12-04 20:22:02 34 0

原创 Java核心技术 卷一 接口

1.抽象类

2018-11-28 22:45:34 33 0

原创 JVM内存结构与垃圾回收

1.虚拟机 虚拟机,爱称JVM,人如其名,是一种虚拟的,抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM的主要工作就是解释自己的指令集并映射到本地的CPU。同时JVM也是Java语言实现平台无关性的重要技术之一。 2.内存结构 程序计数器 程序计数器是一块...

2018-11-26 22:04:52 36 0

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