自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 问答 (9)
  • 收藏
  • 关注

原创 线程上下文类加载器

为什么需要线程上下文类加载器

2022-07-13 10:59:03 444 1

原创 一次完成的RPC调用链路记载

天才风云出我辈,一见00岁月枯!学习之前我对Rpc调用链路的理解用户A 去调用 用户B的一个服务对应下面的例子:首先B先定义接口,以及实现类B目录结构:B的接口所属Module: rpc-apipublic interface IHelloService { String sayHello(String value);}B的实现类所属Module: rpc-providerpublic class HelloServiceImpl implements IHello

2021-11-06 16:10:32 494 2

原创 深入浅出kafka 核心设计与实践-第三章消费者读书笔记

1. 消费者负责订阅kafka中的主题topic,并且从订阅的主题上拉取消息,与其他一些消息中间件不同的是: 还有一层消费组的概念2. 每一个分区只能被一个消费组中的一个消费者所消费3. 消费者与消费组这种模型可以让整体的消费能力具备横向伸缩性,我们可以增加(或减少)消费者的个数 来提高(或降低)整体的消费能力 4. 如果所有的消费者都禄属于同一个消费组,那么所有的消息都会被均衡地投递给每一个消费者,即每条 消息只会被一个消费者处理,这就相当于点对点模式的应用5. 如果

2021-11-04 19:12:27 1059

原创 深入浅出kafka 核心设计与实践---java运行生产者消费者

本地运行项目 pom相关依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> </dependen

2021-11-03 11:34:04 907

原创 Condition----await,signal分析

Condition由来 在前面synchronized的时候,有讲到wait/notify的基本使用,结合shnchronized可以实现对线程通信。那么这个时候我就思考了,既然JUC里面提供了锁的实现机制,那么JUC里面有没有提供类似的线程通信的工具呢?于是找啊找,发现了一个condition工具类 Condition是一个多线程协调通信工具类,可以让某些线程一起等待某个条件(con dition),只有满足条件时,线程才会被唤醒, 案例如下:public class Conditio

2021-01-09 21:33:11 414

原创 理解J.U.C中的ReentrantLock

JUC是啥?其实很简单,大家都喜欢缩写!J.U.C= java.util.concurrent就是这个东西来自哪里?出现的理由在Lock接口出现之前,java中的应用程序对于多线程的并发安全处理只能基于synchronized关键字来解决。但是synchronized在有些场景中会存在一些短板,也就是它并不适合所有的并发场景。但是在java5以后,Lock的出现可以解决synchronized在某些场景中的短板,它比synchronized更加灵活下面我们来简单介绍几种锁:1、Reentrant

2021-01-03 16:48:16 232

原创 多线程---线程死锁

知识要分享,好的东西更要分享出来!昨天了解了多线程死锁相关知识,以前总听别人讲: 面试的时候可能会问你1、死锁产生的条件是什么? 资源的竞争2、能集体说下那么多线程中,产生死锁的几个必要条件是什么? 需要同时满足四个条件 a、互斥,共享资源小x和小y只能被一个线程占用 b、持有等待,线程X持有资源小x,去等待资源小y的时候不释放小x c、不可强占,线程X持有资源小x,那么其他线程不可强占小x d、循环等待, 线程X等待线程Y占有的资源,线程Y等待线程X占有的资

2020-12-21 14:40:41 1745 4

原创 Spring源码解析2---> 核心组件装配

Spring源码解析2—> 核心组件装配前言第一篇文章,我们大体上对Spring如何加载对象有了一个大体的了解,这一篇我们书接上回,尽可能去挖掘里面有意思的东西。Spring加载对象的一般过程1. 加载资源文件2. 资源文件抽象化3. 定义一个装载Bean对象的工厂4. 定义一个beandefinitionReader以装配beanFactory5. beanDefinitionReader读取资源文件6. 以上完成资源文件的读取以及装配对象至beanFactory说实话,我自己

2020-09-22 14:09:42 223 4

原创 Spring 源码解析

spring 源码解析(1) 初始加载前言我很喜欢一句话,年轻时候多学一分,以后就少求别人一次,也送给看博客的各位,下面开始正题IOC先谈谈什么是IOC? 讲真的,这个问题有点老生常谈了,IOC根据官方的语义就是: 控制反转(Inverse Of Control),在 拆分的细致一点: 这个控制指的是什么?反转又是什么意思?再次之前我们先来回想一个问题: 不涉及到框架本身我们创建一个对象的方法有哪些?1. new ClassName(); ---> 直接new对象的方式2.

2020-09-18 15:39:17 531 2

原创 深入浅出Mybatis技术原理与实战: 传统操作数据库

package com.mybatis.level.old;import com.mybatis.level.entity.Student;import lombok.extern.slf4j.Slf4j;import java.sql.*;/** * @author xuxuxu [email protected] * @since 2020/9/7 */@Slf4jpublic class JdbcExample { /** * 获取数据库驱动连接 *

2020-09-07 14:52:01 122

原创 ArrayList(复习)

简单实现ArrayList主要实现代码: package myArray;public class Array{ // implements IArray<E> /** * Array: * * Analyze: 通用功能 ---> 增删改查 * 拓展功能 ---> 动态扩容,队列,栈的实现 * * 有很多 */ // 当前数组实存

2020-08-09 20:07:54 218

原创 策略模式实战

策略模式实战前言说一下场景,我做的是拍卖相关的业务,因而有的订单不能够即时去生成,就用到了定时器去扫表,下面是重头戏,涉及到了不同订单状态的生成,如下:1. 待付定金订单2. 待付尾款的订单3. 待成交订单4. 流拍订单根据定金的状态以及参拍人出价与保留价的差值进行三种订单状态的处理,一开始三种状态写到了一起,上周学了下策略模式,这代码看得我心累,写的自己能没看懂,后面的人估计要开骂了,典型的问题代码,趁着项目没上线必须优化掉,老代码如下: @KafkaListener(topic

2020-07-27 10:02:58 327

原创 自定义异常及其原理剖析

概述在公司写项目的时候发现,虽说我们异常采用了全文捕获的方式,这一点不是很清楚,特此梳理文章来记录下,自己学习的过程先要会用首先我们要思考一个问题: 它是怎么样子捕获异常的?我们都知道我们前后端交互如下图:过程如下:前端通过Http请求访问后端spring项目通过web.xml配置接受前端请求的方式参考Jsp + Servlet的项目(以后有机会补上),将请求都映射到spring-mvc.xml这个文件中(一般情况下)这个样子就完成了前端到后端的映射在以

2020-06-14 19:41:32 335

原创 单一职责原则

定义:单一 Single职责原则简单点做就是为了解耦,一个类或者接口只负责一个功能或一类功能我们再来仔细分析下,单一职责原则这个说法其实更加倾向于方法我们要与接口隔离原则区分开,接口隔离原则本质上也是为了接口,降低接口与接口之间的污染,定义多个接口不要紧,因为接口可以多实现,结合实际开发来讲,在通常的spring项目中我们一般会有Filter类以及Config类,其中Filter类我们一般用来...

2020-03-24 21:02:19 183

原创 接口隔离原则

接口隔离原则定义: 是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口解读: 其实这个定义比较有意思,我理解出以下几点:适度解耦以上两点怎么说呢?首先,适度这个词并不意味着我们每一个操作数据库的Dao/Mapper操作数据库都要建立一个接口,我们知道实际上的对应条件为: DAO—数据库的一张单表,在原则上面就与现在的主流相违背!接口隔离原则让我们去用多个单一...

2020-03-23 06:54:57 196

原创 Mac 发版项目

记录下Mac在发版项目时候第一次所遇到的问题Mac 本身是可以连接远程服务器的不用下其他的辅助软件第一步打开终端,页面如下第二步获得root权限操作指令如下: sudo -i[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FQi0fo8y-1584786817814)(https://s1.ax1x.com/2020/03/21/8fOBZV.png)]...

2020-03-21 18:39:33 171 1

原创 开闭原则

前言做事情要务实,万丈高楼平地起,底层基础决定上层建筑,那么在你阅读一些源码前有一些知识就很有必要去掌握,打个比方来说就拿Spring源码里面运动了大量的设计模式,那么设计模式是怎么来的?说直白点就是在某些特定场景下解决该类方法的一个模板,前人总结的经验教训!在学习设计模式前我们很有必要去了解下设计模式所需要遵守的规则(无规矩不成方圆,想要创新可以,但是请先自己对当前所学知识有一个全新的认知以后...

2020-03-20 09:24:27 199

原创 二分搜索树(自用)

二分搜索树今天七夕,然后我再公司宿舍写代码!!!好吧~我承认我酸了,不想进行讲解,我就是将今天的事记录下,而且也不知道咋回事,回来倒头就睡,可能是算法太耗费脑子了吧,也不知道是因为算法还是情人节闹的~反正就是特么蔫吧了一整天,现在的时间是2019年8月7日23:09:19,代码你们粘过去也运行不了,因为里面用到了我自己写的队列Queuepackage com.myTree;import ...

2019-08-07 23:13:12 115

原创 Spring MVC的前世今生

区分三层架构和Spring MVC三层架构:1. Dao数据访问层2. Service业务处理层3. Web层(J2EE的内容,一般指封装了Request,Response的)Spring MVC:1. M:Model,一般指Entity、Pojo、Model具体的看习惯了2. V:View,一般指视图层,主要的交互种类有JSP、Freemark等3. C:Controlle...

2019-08-05 15:47:23 1332

原创 基于JDK的动态代理模式

前言学习呢,在我看来有输入就要有输出,所谓的输入就是你看的视频,所谓的输出就是当你学完这个课程,你自己对这个视频的理解以及感受,简单地讲,我自己写博客,是为了记录自己学习的过程,当然,如果能给其他人带来帮助,那就更好不过了,旨在对自己学习的知识进行一个有效的输出,不然,看了白看!可能说有一点夸张,但是一点也不为过,举个我自己的例子,我曾经花费了一个多月的时间每天看一个有关于Java8的视频还有G...

2019-06-03 17:07:21 194 1

原创 自定义动态代理模式

前言上一节中我们简单概述了JDK中的动态代理模式,但是难免心中存疑,我们可以很明确的知道最核心的地方就是生成代理类的过程,也就是我们的这一块代码:Proxy.newProxyInstance(clazz.getClassLoader(),clazz.getInterfaces(),this) 针对于这个点,我们来说一下在JDK的动态代理模式中所存在的疑问:1.这个clazz.getClass...

2019-06-03 16:40:25 275

原创 SprngBoot的启动流程

前言最近,在学习Springboot + SpringCloud,以前就对传统的项目JSP + Servlet项目感兴趣,对哪些东西感兴趣呢?打个比方当客户端发出一个请求给服务器,在这个最始之初,他会先去校验Web.xml的配置,包括<Servlet>,<Listener>以及<Context-param>等标签,在研究的过程中出现了一些问题那就是W...

2019-05-28 15:18:12 270 3

原创 #创建Oracle数据库表所遇到的问题

像mysql一样设置主键自增这个问题说真的真的是给我卡住了,处于各种懵逼状态!由于以前公司用的数据库都是mysql以为直接Auto_Increment 就可以了~设置主键自增,结果可想而知!!! 真的是太惨了,耽误了自己很长时间才把这个问题解决,而且,由于用的数据库是Navcat Premium,这个工具也导致踩了一个大坑!!!下面来记录下这个问题 CREATE TABLE "HTD_BOS...

2019-05-21 14:38:05 438

转载 aload、aload_1、iload都是什么意思

aload 什么意思原文链接 http://www.importnew.com/13107.html1、aload1、aload从局部变量表的相应位置装载一个对象引用到操作数栈的栈顶aload_0把this装载到了操作数栈中aload_0是一组格式为aload_的操作码中的一个,这一组操作码把对象的引用装载到操作数栈中标志了待处理的局部变量表中的位置,但取值仅可为0、1、2或者3。2、i...

2019-05-09 09:07:51 15524 1

转载 HttpClient设置请求头消息User-Agent模拟浏览器

HttpClient设置请求头消息User-Agent模拟浏览器  比如我们请求 www.tuicool.com  用前面的代码  这个是一个Maven项目Pom.xml配置如下 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;project xmlns=&quot;http://maven.apache.org/

2019-02-21 10:50:23 7568

原创 Web端第一次登陆和第二次登陆的区别

今天大致弄清楚了关于微信公众号与小程序之间的区别,下面我们还需要梳理一个知识点:在Web端用户第一次登陆与第二次登陆的区别(第二次登陆为记住密码),下面有什么区别呢,就我现在的观点看来,主要可以分为以下区分1.第一次登陆2.第二次登陆ps:仅供参考,仅仅是为了解决项目所遇到的问题的前置解决条件...

2019-02-12 17:41:10 2246

原创 Git常用指令大全

Git 常用命令bash —&gt;脚本解释器,功能一般zsh —&gt;脚本解释器,功能很强大,但是,比较复杂on my zsh —&gt;脚本解释器,人为迭代,发布在Github上面1.查看当前git版本(git bash): git --version2.查看当前路径下的所有文件: ls3.查看当前路径下所有文件的的详细信息:ls -al(包括是否读写,创建日期等详...

2019-01-07 15:52:06 379

原创 简单工厂模式、工厂方法模式、抽象工厂模式区别和联系

1. 简单工厂模式简单工厂模式,按照我在现实中的理解是:生产统一规格的商品,当然了,你可以生产其他商品的东西,假设我们生产的是汽车~那么我们可以生产一下汽车那么我们既然说到了统一规格就需要定义一个接口,代码如下:package com.robam.factory.simple;/** * @author Zerox * @date 2018/12/24 10:04 */publ...

2018-12-25 08:56:32 457

原创 Sprigboot通过MultipartFile上传时所遇到的BUG

1.Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.disk.DiskFileItemFactory该问题说明,Spring-MVC与Springboot支持文件上传的机制产生了冲突解决方案:将自己配置的FileUploadConfif注释掉,如下图2.java.lang.NullP...

2018-12-12 10:14:04 418

原创 CURL指令学习

##Curl指令学习1.curl URL ------&amp;gt; 返回请求地址的内容2.curl -i URL ------&amp;gt; 返回请求地址的内容还返回请求头3.curl URL -H ‘Content-Type:application/json’ ------&amp;gt;通过 -H 设置请求的HTTP头4.URL通常用双引号防止转义,比如&amp;amp;符号在命令行中表示后台运行,...

2018-12-11 13:43:28 275

原创 Java8之function函数详解

1. function我们来看下function这个函数式接口里面都有什么方法下面,我们来仔细研究下以下的方法1.R apply(T t)按照以往的逻辑,我们先来看下原始接口是怎么说的翻译过来就是:将给定的参数应用到这个函数上,传入的参数类型为T返回类型为Rimport java.util.function.Function;/** * @author Zerox *...

2018-12-05 13:32:18 58918 4

原创 fatal: pathspec ‘fileName‘ did not match any files 解决办法

再删除文件的时候突然出现了这个问题:fatal: pathspec ‘fileName’ did not match any files分析如下:这个文件怎么回事?为什么删不掉?难道是分支的错误?还是怎么回事?产生原因:该文件存在于.gitignore文件中因此,不让动!解决方案:既然知道原因那就好办了,1.将文件从.gitignore移除2.将移除后的.gitigore文件提交...

2018-12-04 13:45:12 54687 7

转载 IDEA热部署不生效解决方案(亲测有效)

1.pom依赖&amp;lt;!--Spring 官方提供的热部署插件 --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-bo

2018-12-04 10:35:25 27454 25

原创 Java8基础知识点梳理

最近可能是自己的原因导致对Java8的学习落入的下乘,我们就来抽个时间将Java8的知识点进行梳理下吧###常用的函数(函数式接口)1.function根据我的记忆是function里面有个apply方法,apply方法是接受一个参数,并不返回值,我们去看下源码那么就比较明显了,我记错了,在我看来这个是一个好事,下面我们去写个代码去测试一下这个方法import java.ut...

2018-11-30 14:39:59 427

原创 Sprngboot中的application.properties配置文件查询字典

##Serverserver.address ---------服务器地址server.port ---------服务器端口server.context-parameters.[param name] ---------设置 servlet 上下文参数server.context-path ---------应用上下文路径##Viewspring.view.prefix Spri...

2018-11-14 17:06:48 696

原创 Java权限验证

#Java权限验证  这里面我们进行一些简单的权限验证,先从数据库建立关系来说起###建立数据库表1.User表(用户)CREATE TABLE USER( id INT(11) PRIMARY KEY AUTO_INCREMENT COMMENT '用户id', userName VARCHAR(30) NOT NULL COMMENT '用户姓名',address...

2018-11-14 09:35:43 2960

原创 Java8之Predicate函数

这次我们来分享Predicate这个函数,还是按照以往的风格我们来进行对比的操作,话不多说,我们来切入正题—&amp;amp;amp;amp;gt; 将predicate里面的函数一一剖析。###test()方法1.我们直接先来看Predicate这个函数的源码解释解释一下1 . 代表着一个**“断定式子”**2 . 这是一个实用的接口—&amp;amp;amp;amp;gt;其中的实用方法指的是test方法 **PS:下面就是te...

2018-10-26 17:55:25 86955 10

原创 java8之匹配数据

从简至繁阐述在开发中可能会用到的Java1.8中的技术,今天的这个例子是:当我们查询数据库的时候需要将列表List里面的数据进行筛选的时候,原始的操作方法,和新生方法的不同。原始的代码 import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** ...

2018-10-25 14:18:16 3225

原创 Java中的绝对路径与相对路径

#Java中的绝对路径与相对路径  近些天对Java中的绝对路径与相对路径比较模糊,本着一个学到手都是自己的原则,下面我们来好好区分下绝对路径与相对路径。1.绝对路径: 听着名字就大概可以了解到这个东西是绝对的,我们查一下百度百科&amp;quot;绝对&amp;quot;:指没有任何条件限制,不受任何限制而言。这个就比较官方一点了,咱们用咱们计算机的事物去分析,举个例子: 比如说你要读取某个文件,如果说这个文件在你的硬盘中...

2018-10-13 10:12:17 721

原创 XML解析之Dom4并将其解析成对应的实体类

前言    今天和师傅聊天,然后师傅给我布置了一个小Demo让我联系下,将XML解析成对应的实体类,我的初衷是分别用Dom4j还有SAX解析顺便对比下两种方式的区别以及是否有联系第一种方式Dom4j的方式进行解析1.我采用Maven项目&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;dom4j&amp;lt;/groupId&amp;gt; &amp;lt;artifact

2018-09-04 21:36:16 1093 1

Springboot实战JAVAEE颠覆者PDF版

主要对传统的JavaEE进行了描述以及与Springboot是如何衍生而来与其优点 1.Spring基础 2.Spring常用配置 3.Spring高级话题 4.SpringMVC基础 5.Springboot基础 6.Springboot核心 7.Springboot的Web开发 8.Springboot数据访问 9.Springboot企业级开发 10.Springboot开发部署与测试 11.应用监控 12.分布式系统开发 总体而言这本书还是很不错的,里面对一些注解进行了详细讲解以及为什么要用注解的原因,一句话:大道至简~

2018-08-14

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

TA关注的人

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