自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Dobbo简单实战

dubbo简单实战+源码讲解

2022-08-11 15:30:16 1093 2

原创 聊聊对RPC的理解

PRC是一种远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器上,那么服务 A 如果想要调用服务 B 中的某个方法该怎么办呢?使用 HTTP请求当然可以,但是可能会比较麻烦。RPC 的出现就是为了让你调用远程方法像调用本地方法一样简单。.........

2022-08-10 11:33:05 1381

原创 布隆过滤器简单实现添加和判断功能

是 1970 年由布隆提出的。它实际上是一个很长的向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,一般想到的是将集合中所有元素保存起来,然后通过比较确定。、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间也会呈现线性增长,最终达到瓶颈。...

2022-08-03 17:21:08 1769

原创 HashMap总结

1)HashMap是基于Map接口的非同步实现,线程不安全,是为了快速存取而设计的;它采用key-value键值对的形式存放元素(并封装成Node对象),允许使用null键和null值,但只允许存在一个键为null,并且存放在Node[0]的位置,不过允许存在多个value为null的情况。(2)在JDK1.7及之前的版本,HashMap的数据结构可以看成“数组+链表”,在JDK1.8及之后的版本,数据结构可以看成"数组+链表或红黑树",也就是说HashMap底层采用数组实现,数组的每个位置都存储一个。..

2022-07-25 22:26:33 1931

原创 SpringAOP原理+使用

什么是SpringAOP?软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。应用场景日志记录 & 日志框架 入参打印 ........

2022-07-24 20:18:19 1973

原创 TCP三次握手四次挥手

TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态;TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个...

2022-07-24 15:14:45 1843

原创 DNS域名解析过程剖析

第三步如果本地也没有配置那么就会根据向本机配置的本地区DNS域名服务器(LDNS)发起请求,如果你是通过学校连接互联网的一般是你学校的DNS服务器,如果你是在小区连接互联网的一般是网络提供商比如电信,联通的DNS服务器,DNS服务器通常不会太远。第七步gLTD服务器查询并返回域名对应的NameServer域名服务器的地址,通常是你注册的域名服务器,例如你在某个域名服务器提供商申请的域名,那么这个域名解析任务就由这个域名服务提供商来完成。第二步如果浏览器缓存没有,那么就检查操作系统的hosts文件。...

2022-07-19 22:25:31 4234

原创 X.509证书(结构+原理)

数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权,(CertificateAuthority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。将报文按双方约定的算法计算得到一个固定位数的报文摘要。.......

2022-07-15 22:17:55 2779

原创 消息队列(MQ)

定义消息队列:一般我们会简称它为MQ(Message Queue)。Message Query(MQ),消息队列中间件,很多初学者认为,MQ通过消息的发送和接受来实现程序的异步和解耦,mq主要用于异步操作,这个不是mq的真正目的,只不过是mq的应用,mq真正的目的是为了通讯。他屏蔽了复杂的通讯协议,像常用的dubbo,http协议都是同步的。这两种协议很难实现双端通讯,A调用B,B也可以主动调用A,而且不支持长连接。mq做的就是在这些协议上构建一个简单协议——生产者、消费者模型,mq带给我们的不是底层的通讯

2022-07-14 11:55:22 2769

原创 数据库事务(常被问的)

数据库事务,是指作为单个逻辑工作单元执行的一些列操作,要么都执行,要么都不执行举个简单例子:小明给小黑转100元钱,能分为小明减去100元,小黑加上100元。但不能只执行其中的一步,要么都执行,要么都不执行。这就是事务。原子性(Atomicity): 一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。一致性(Consiste

2022-07-12 18:42:29 1925

原创 Lombok详细介绍

Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。简单来说:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。引入依赖安装插件不使用Lombok的注解,每个都要写这些方法,很麻烦。使用Lombok的注解,自己生成了需要的get、set、toString等方法四、Lombok常用注解@Setter 注解在类或字段,注解在类时为所有字段生成setter方

2022-07-12 18:03:31 2382

原创 从输入网址到浏览器显示过程剖析

DNS解析:将域名解析成IP地址先去浏览器缓存检查操作系统缓存检查 + hosts 解析向本地DNS服务器上查询DNS 根服务器查询向根服务器发送请求com 服务器收到请求后,不会直接返回域名和 IP 地址的对应关系,而是告诉本地DNS 服务器,该域名可以在 baidu.com 域名服务器上进行解析获取 IP 地址,并告诉 baidu.com 域名服务器的地址。baidu.com 服务器收到请求后,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。本地 DNS

2022-07-11 11:01:06 2004

原创 手动实现一个tomcat

此图就是tomcat的实现原理,搞懂此图你也可以自己实现一个tomcat了!这是我实现的一个tomcat tomcat: 手动实现tomcat需要放在路径没有空格。MyTomcat类是启动类

2022-07-11 10:34:28 1974

原创 Java细节 为什么字符串是不可变的?

它是由final修饰的类它是final修饰的char数组整个类内不存在任何一个对数组内容做修改的方法,并且还是private修饰的如图 substring截取字符串方法也是没有改变本身,而是创建了新的字符串并返回的 因为可以共享所有相同的字符串可以指向同一个地方。总而言之,Java 的设计者认为共享带来的高效率远远胜过于提取、 拼接字符串所带来的 低效率。查看一下程序会发现:很少需要修改字符串, 而是往往需要对字符串进行比较(有 一种例外情况,将来自于文件或键盘的单个字符或较短的字符串汇集成字符串。)...

2022-06-06 22:04:57 1990 2

原创 面向对象编程和面向过程编程的区别,以及优缺点

当需要实现一个功能的时候我们并不关心具体的步骤,而是找一个已经具备该功能的人来帮我们做事。那就用到了封装、继承和多态。封装 - 把需要的功能放到一个方法中,别人只能调用这个方法继承 - 子类继承父类的方法多态 - 同一个行为有多个不同表现形式或形态的能力 多态实现必要条件1.子类必须继承父类2.必须有重写3.父类引用指向子类对象优点:易维护、易复用、易扩展。可以设计出低耦合的系统,使系统更加灵活、更加易于维护缺点:性能比面向过程低。当需要实现一个功能的时候,我们需要把解决问题的代码都写出来,详细处理每

2022-06-06 22:04:13 3062

原创 Jave实现Word导出(非常详细)

首先我用的是框架niua: 基于Springboot的后台管理系统 - Gitee.com准备工作设置好我们本地word导出模板路径建好导出word的样式另存为xml格式将后缀名改为ftl,放到我们的导出模板路径下<#list db as db> 放相同样式,但内容不同的代码 </#list>根据标识符绑定对应数据word导出代码public static String WordDocExport(Map&..

2022-05-19 16:28:53 2696

原创 Springboot常用注解

@Builder 注解为类生成相对略微复杂的构建器 API它作用于类,将其变成建造者模式可以以链的形式调用初始化实例对象生成的对象是不可以变的,可以在创建对象的时候进行赋值如果需要在原来的基础上修改可以加 set 方法,final 字段可以不需要初始化它会生成一个全参的构造函数@Data注解自动添加类中所有属性相关的 set 方法自动添加类中所有属性相关的 get 方法生成一个该类的构造方法,禁止无参构造重写该类的toString()方法重写该类的equals()和hashCo

2022-05-18 15:47:51 3726 3

原创 Mysql索引概述

什么是索引?索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。举例说明索引:如果把数据库中的某一张看成一本书,那么索引就像是书的目录,可以通过目录快速查找书中指定内容的位置,对于数据库表来说,可以通过索引快速查找表中的数据。索引原理索引一般以文件形式存在磁盘中(也可以存于内存中),存储的索引的原理大致概括为以空间换时间,数据库在未添加索引的时候进行查询默认的是进行全量搜索,也就是进行全局扫描,有多少条数据就要进行多少次查询,然后找到相匹配的数据就

2022-05-15 23:27:07 2125

原创 MyBatis详解

首先创建项目导入包<?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 http://maven.apach.

2022-05-12 17:15:15 1959

原创 将Excel表中数据导入数据库(看了就会)

首先我用的是框架niua: 基于Springboot的后台管理系统 - Gitee.com此框架还有自动生成增删改查和前端vue页面将Excel表中数据导入数据库第一步,我们要将本地Excel表上传到服务器(此次我就将我的本地电脑当做了服务器),并返回服务中Excel表的名称,拼接服务器中Excel表的绝对路径。upload是方法拼接的//上传文件路径 F:\\Program Files\\java\\chaozexu\\bdks\\demo\\upload\\String.

2022-05-02 15:08:02 18888

原创 使用docker实现springboot项目的跨平台部署

1、niua-easy数据库按照要求整理成init.sql,放到指定目录2、将后台程序,打包成可执行jar,放到server目录中。idea右侧Maven,点开nius-easy-parent,点开Lifecycle,双击package3、将easy-backend-ui执行npm run build命令,生成发布版本,放到web目录。4、按照docs目录下的docker安装文档,安装和配置docker和docker-compose, 并部署相关应用.....

2022-04-25 12:05:10 2376

原创 SpringMvc参数传递

SpringMvc两种映射规则1.spring mvc 默认参数映射规则:名字一致 自动映射2.spring mvc自定义映射规则:可以通过注解来实现=> @RequestParam传递基本数据类型@RequestParam,POST和GET均支持注解定义@Target({ElementType.PARAMETER}) // 只能作用于参数上@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ..

2022-04-01 21:22:03 2440

原创 Java递归实现菜单树

pom文件<?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 https://maven.apache.org/xsd/...

2022-03-27 20:47:06 1156

原创 RBAC权限模型详解

RBAC模型概述RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到20世纪90年代中后期,RBAC才在研究团体中得到一些重视,并先后提出了许多类型的RBAC模型。RBAC模型组成在RBAC模型里面,有3个基础组成部分,分别是:用户、角色和权限(资源、菜单)。RBAC通过定义角色的权限(资源、菜单),并对用户授予某个角色从而来控制用户的权限(资源

2022-03-27 20:17:06 1312

原创 SpringBoot实现token登录

在进行登录验证时,我们需要session或cookie会话进行验证,客户端包括浏览器、app、微信小程序、公众号,只有浏览器有session和cookie机制,当我们脱离浏览器用app等向服务端发请求就没有session和cookie机制,这时我们就需要使用token令牌进行登录验证。...

2022-03-23 18:25:54 9462 1

原创 SpringBoot拦截器实现登录拦截

SpringBoot拦截器可以做什么?可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等实现代码新建 interceptor包添加拦截器代码package com.qcby.interceptor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.method.HandlerMethod;impor

2022-03-23 17:38:28 4060

原创 Spring MVC请求参数的绑定

请求参数的绑定说明1. 绑定机制①. 表单提交的数据都是k=v格式的 username=haha&password=123②. SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的③. 要求:提交表单的name和参数的名称是相同的2. 支持的数据类型①. 基本数据类型和字符串类型②. 实体类型(JavaBean)③. 集合数据类型(List、map集合等)基本数据类...

2022-02-21 17:45:34 940

原创 SpringMVC入门案例

一、SpringMVC的入门程序1.搭建springMVC①:创建WEB工程,引入开发的jar包②:具体的jar包如下<?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:schemaLoca.

2022-02-21 17:23:23 276

原创 Java web的发展历史

一、Model l和Model ll1.Model l开发模式Model1的开发模式是:JSP+JavaBean的模式,它的核心是Jsp页面,在这个页面中,Jsp页面负责整合页面和JavaBean(业务逻辑),而且渲染页面,它的基本流程如下:这样的设计模式到这一个jsp页面负责了视图的展示和业务流程的控制高度耦合的结果是Jsp代码十分复杂,后期维护困难!2.Model II开发模式在Model II的模式下。利用jsp页面、servlet和JavaBean组件分工协作共同完成系统的所

2022-02-21 16:41:36 289

原创 Spring的AOP技术—注解方式

AOP注解方式入门程序创建maven工程,导入坐标。编写接口,完成IOC的操作。步骤略。下面这链接有。Spring的AOP技术-配置文件方式_m0_52012606的博客-CSDN博客编写切面类给切面类添加注解 @Aspect,编写增强的方法,使用通知类型注解声明1.配置xml扫描注解<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sche...

2022-02-20 16:46:02 794 1

原创 Spring的AOP技术-配置文件方式

1. AOP相关的术语Joinpoint(连接点) 类里面有哪些方法可以增强这些方法称为连接点Pointcut(切入点) -- 所谓切入点是指我们要对哪些Joinpoint进行拦截的定义Advice(通知/增强)-- 所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)Aspect(切面)-- 是 切入点+通知 的结合,以后咱们自己来编写和配置的2. 基本准备工作AspectJ是一个面向切面

2022-02-20 16:33:28 958

原创 Spring—AOP的介绍

什么是AOP?如上图所示这是一个基本的登录原理图,但是如果我们想要在这个登录之上添加一些新的功能,比如权限校验那么我们能想到的就有两种方法:①:通过对源代码的修改实现②:不通过修改源代码方式添加新的功能 (AOP)AOP相关的概念1. AOP的概述什么是AOP的技术?在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构AOP最早由AOP联盟的组织提

2022-02-20 16:02:54 267

原创 Spring框架的Bean管理

1.什么是Bean个管理bean管理指的是如下的两个操作1.创建对象 2.注入属性(2).Bean管理操作的两种方式1.基于xml配置文件的方式实现 2.基于注解方式实现(3).基于xml配置文件的方式实现Bean管理和注入属性1.基于xml方式创建对象①:这个就是我们上边配置过 ②:创建对象的时候,默认是执行无参构造方法完成对象...

2022-02-20 12:05:10 266

原创 Spring框架的IOC容器管理

1. 什么是IOCIOC -- Inverse of Control,控制反转,将对象的创建权力反转给Spring框架!在java当中一个类想要使用另一个类的方法,就必须在这个类当中创建这个类的对象,那么可能会出现如下情况, 比如A类当中创建着B对象,B类当中有C对象,C类当中有A对象,这个如果一个类出了问题,那么可能会导致这个框架出现问题。 Spring 将创建对象的权利给了IOC,在IOC当中创建了ABC三个对象吗,那么我们我们其他的类只需要调用集合, 大大的解决了程序耦合性的问题。控制反转

2022-02-19 17:40:52 393

原创 Spring框架介绍并创建Hello world

一、Spring框架的介绍1. Spring框架的概述Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EEDevelopment and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使

2022-02-19 17:30:22 517

原创 mybatis缓存(一级缓存、二级缓存)

一、什么是缓存?1.什么是缓存存储在内存当中的数据 将用户常使用的数据存放在缓存(内存)当中,用户查询数据就不用从磁盘(关系型数据库文件)当中查询,从缓存当中查询,从而提高查询效率,解决了高并发系统的性能问题2.为什么使用缓存减少和数据库的交互次数,减少系统开销,提高系统效率3.什么样的数据能使用缓存经常查询并且不常改变的数据二、Mybatis缓存mybatis包含了一个非常强大的查询缓存特性,他可以非常方便的定制和配置缓存。缓存可以极大的提高查询的效率mybatis系统当中

2022-02-19 17:12:50 1640

原创 servlet核心接口和类

在Servlet体系中,除了实现servlet接口,还可以通过继承GenericServlet或HttpServlet类实现编写一、Servlet接口servlet接口是整个servlet的核心。它是所有Servlet类必须直接或者间接实现的一个接口,其内部需要实现的5个方法分别关乎着我们servlet的生命周期和业务实现。init(... ) 当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来service(...) 每当请求Serv

2022-02-10 18:25:40 240

原创 Http协议

一、认识urlurl被称为统一资源定位符,用来表示从互联网上得到的资源位置和访问这些资源的方法。他的表示方法一般为:<协议>://<主机>:<端口>/<路径>如下我们启动一个servlet程序,来看一下我们的url表示http://localhost:8080/BuyechengServlet/login.html大家可以看到我们采用的是我们这里采用的是 http协议localhost:代表的是我们本机的IP地址8080:代表我

2022-02-10 17:24:13 212

原创 网站架构和Servlet技术体系架构

一、网站架构现在的网站架构分为 B/S架构和C/S的架构两种。B/S结构有很多好处,维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以。C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。二、Servlet技术体系...

2022-02-10 16:54:38 1591

原创 Java中==和equals()的区别

== 可以比较基本数据类型也可以比较引用数据类型。equals()方法只能比较引用类型。==在基本数据类型比较的是值是否相等。 引用数据类型比较的是地址是否相等。equals()基本数据类型,没有equals()方法 引用数据类型Object类当中equals()方法用==比较地址是否相等,String类重写了Object类中的equals方法,先是比较地址是否相等,如果地址不同,再比较值。.........

2022-01-23 12:02:43 304

空空如也

空空如也

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

TA关注的人

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