自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 加密算法、哈希算法及其区别+国密简介

目标:加密算法的主要目标是保密性(Confidentiality),它用于将明文数据转换为密文数据,以确保只有授权的用户或实体可以解密和访问数据。AES(Advanced Encryption Standard:高级加密标准):目前广泛使用的对称加密算法,支持不同的密钥长度(如AES-128、AES-256)。SHA-512和SM3都经过专业的密码学设计,但具体的设计细节可能会影响算法的强度。抗碰撞性: 安全性的一个关键方面是抵抗碰撞攻击的能力,即使攻击者能够生成两个不同的输入,但它们具有相同的哈希输出。

2023-09-20 22:22:58 143 1

原创 Mybatis拦截器注解@Intercepts与@Signature注解属性说明

Mybatis拦截器注解@Intercepts与@Signature注解属性说明可能有些新手使用mybatis拦截器的时候可能没太懂@Signature注解中type,method,args的用法首先mybatis拦截器可以拦截如下4中类型Executor sql的内部执行器ParameterHandler 拦截参数的处理StatementHandler 拦截sql的构建ResultSetHandler 拦截结果的处理@Signature 注解参数说明:type:就是指定拦截器类型(Parame

2023-09-18 22:15:58 1116

原创 Elasitcsearch入门1

新增索引:PUT "localhost:9200/nba"获取索引:GET "localhost:9200/nba"删除索引:DELETE "localhost:9200/nba"批量获取索引:GET "localhost:9200/nba,cba"获取所有索引:GET "localhost:9200/_all" GET "localhost:9200/_cat/indices?v"

2023-09-15 20:59:20 67 1

原创 springAop使用的动态代理是jdk还是cglib

需要注意的是,对于final类和方法,无法使用CGLIB动态代理,只能使用JDK动态代理。因此,当目标对象是final的或者目标方法是final的、static的、private的时候,Spring AOP会强制使用JDK动态代理。CGLIB动态代理通过继承目标对象创建代理类,并重写目标对象的方法来实现代理功能。Spring AOP使用的动态代理可以是JDK动态代理或CGLIB动态代理,具体选择哪种代理方式取决于被代理的目标对象的类型和配置。springAop使用的动态代理是jdk还是cglib。

2023-09-14 23:16:48 223 1

原创 TortoiseGit设置作者信息和用户名、密码存储

客户端每次与服务器交互,都需要输入密码,但是我们可以配置保存密码,只需要输入一次,就不再需要输入密码。

2023-09-12 23:33:15 772

原创 @Scheduled 定时任务不执行

【代码】@Scheduled 定时任务不执行。

2023-09-11 22:40:20 610

原创 跨域介绍及相关解决方案

域:由协议、ip、端口组成可分为两种:1.同域:协议、ip、端口都相同2.跨域:协议、ip、端口只要有一个不同,违反浏览器的同源策略说一下同源策略:同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。跨域目前只会出现在Ajax异步访问。

2023-09-10 20:47:56 39 1

原创 Feign

首先,我们知道HTTP连接需要经过三次握手,四次挥手的过程,这是很耗费性能的;所以HTTP连接池帮助我们节省了这一步。同时Feign的HTTP客户端支持三种框架:默认是HttpURLConnection。

2023-09-08 16:58:11 38 1

原创 Spring MVC 介绍

MVC的三层架构MVC是一种开发模式,它是模型、视图、控制器的简称;所有的web应用都是基于MVC开发M:Model,模型层,指工程中的JavaBean,作用是处理数据;JavaBean分为两类:①一类称为实体类Bean:专门存储业务数据的,如 Student、User 等。②一类称为业务处理 Bean:指 Service【业务逻辑层】 或 Dao【数据访问层】 对象,专门用于处理业务逻辑和数据访问。总结:包含实体类、业务逻辑层、数据访问层。

2023-09-06 22:06:44 100 1

原创 Mybatis-plus

leftJoin():左连接,其中第一个参数是参与联表的表对应的实体类,第二个参数是这张表联表的ON字段,第三个参数是参与联表的ON的另一个实体类属性。select():查询指定的字段,支持可变长参数同时查询多个字段,但是在同一个select中只能查询相同表的字段,所以如果查询多张表的字段需要分开写。selectAs():字段别名查询,用于数据库字段与接收结果的dto中属性名称不一致时转换。中也能很好的支持列表查询中的分页功能,首先我们要在项目中加入分页。代表接收返回查询结果的类,作用和我们之前在。

2023-09-05 20:03:37 29 1

原创 linux介绍

Linux是一套免费使用和自由传播的操作系统。在IT行业,通常应用于服务器系统,如部署我们开发的系统,应用等。Linux的每一个目录,都有特殊的意义。我们一定不要随意动,否则很有可能导致系统出现问题。内核是Unix,操作有点类似Linux。

2023-09-04 15:27:48 26

原创 Redis 单线程模型

redis 只使用一个线程来处理所有的命令请求,并不是说一个 redis 服务器进程内部真的就只有一个线程,其实也有多个线程,多个线程是再处理网络 IO。比如,针对插入删除,数据库中的各种约束,都会使数据库做额外的工作。幸运的是,并不会发生这种问题,redis 服务器实际上是单线程模型,保证了当前收到的这多个请求是串行执行的!redis 每个基本操作,都是短平快的,就是操作内存数据,不是什么特别消耗cpu的操作,就算搞多线程也提升不大。此时当前这个两个redis客户端,也相当于“并发”的发起了上述的请求。

2023-08-29 23:03:19 28 1

原创 使用MAP和实体类作为参数的优缺点

仅仅看方法签名,你不清楚Map中所拥有的参数个数、类型、每个参数代表的含义。后期人员去维护,例如需要加一个参数等,如果项目层次较多,就需要把每一层的代码都了解清楚才能知道传递了哪些参数。javabean在数据输入编译期就会对一些数据类型进行校验,如果出错会直接提示。而map的数据类型则需要到sql层,才会进行处理判断。map的参数值如果多传、乱传,也是需要到sql层,才能判断出是不是字段写错,不利于调试等。map的参数名称如果写错,也是需要到sql层,才能判断出是不是字段写错,不利于调试等。

2023-08-28 22:44:29 110

原创 Spring Cache

图中代码所示,就是我们上面描述的使用Redis作为缓存中间件来进行缓存的实列,我们不难发现,我们的查询和存储时都是使用到了SpringBoot整合Redis后的相关API的,并且项目中所有的使用缓存的地方都会如此使用,这样子提升了代码的复杂度,我们程序员更应该关注的是业务代码,因此我们需要将查询缓存和存入缓存这类似的代码封装起来用框架来替我们实现,让我们更好的去处理业务逻辑。使用了@CachePut注解的方法,会把方法的返回值put到缓存里面缓存起来,供其它地方使用。「一般用在更新或者删除的方法上」

2023-08-27 22:49:43 37

原创 垃圾回收器

根据垃圾回收器这个名字我们可以知道,其主要作用是用来回收内存中已被判定无用的垃圾对象。但是垃圾回收器在扫描过程中,寻找并标记的其实是还在存活的对象。当查找完全部存活对象后将未标记的对象进行统一的回收。

2023-08-25 22:40:09 28 1

原创 基于Jwt的token的身份验证

Token的意思是“令牌”,简单说Token就是一种身份认证方式,基于Token的用户认证是一种无状态的认证方式。而所谓无状态指的是在服务端不需存储token数据或者登录用户信息,而是在客户端的每次请求时,携带在请求头里一起到达服务端,用户信息则存储在Token中,由服务器来解析Token以达到验证的目的。该部分是将前两部分Base64Url编码后的字符串,用 "." 拼接在一起后,再使用Header中记录的签名算法进行加密产生第三条字符串。三条字符串以 "." 拼接后就组成了一条完整的JWT。

2023-08-24 22:34:32 127 1

原创 redis序列化

运用默许的JDK序列化体式格局,在RDM东西中检察k-v值时会涌现乱码,所以绝大多数情况下,不推荐使用 JdkSerializationRedisSerializer 进行序列化,不方便检察。KEY 被序列化成这样,线上通过 KEY 去查询对应的 VALUE非常不方便,所以 KEY 肯定是不能被这样序列化的。而我们举行跨平台存储和收集传输的体式格局就是IO,而我们的IO支撑的数据格式就是字节数组。KEY 前面带着奇怪的 16 进制字符 , VALUE 也是一串奇怪的 16 进制字符。

2023-08-23 21:38:15 82

原创 Redis

Redis是一个基于内存的key-value结构数据库RedisRedis中文网基于内存存储,读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:字符串 string哈希 hash列表 list集合 set有序集合 sorted set / zset。

2023-08-21 22:23:06 28 1

原创 Aop简述

AOP( 面向切面编程 )是一种思想,它的目的就是在不修改源代码的基础上,对原有功能进行增强。SpringAOP是对AOP思想的一种实现,Spring底层同时支持jdk和cglib动态代理。Spring会根据被代理的类是否有接口自动选择代理方式:如果有接口,就采用jdk动态代理如果没接口,就采用cglib的方式。

2023-08-20 22:05:55 28 1

原创 ThreadLocal

主要原因:线程的私有变量ThreadLocalMap里面的key是一个弱引用。弱引用的特性,就是不管是否存在直接引用关系, 当成员ThreadLocal没用其他的强引用关系的时候,这个对象会被GC回收掉。threadLocal.set("共享变量")方法传入一个共享变量值,然后threadLocal.get()拿。ThreadLocalMap,它专门来存储当前线程的共享变量副本,后续这个线程对于共。享变量的操作,都是从这个ThreadLocalMap里面进行变更,不会影响全局共享。

2023-08-18 22:17:57 34

原创 Git 分布式版本控制工具

版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。总结:历史记录、检入检出控制、分支和合并GIT是目前世界上最先进的一款免费、开源的。

2023-08-17 17:28:11 31 1

原创 Maven介绍

Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。

2023-08-15 22:11:12 21

原创 文件上传功能实现

本章主要讲解本地存储和使用第三方的存储服务器。

2023-08-14 21:36:18 30

空空如也

空空如也

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

TA关注的人

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