自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Map和Set的迭代器原理

最近在复习Java集合类型的知识,突然发现Map的遍历问题,因为Map不是Collection,只有Collection才能使用迭代器进行遍历,但是Map的遍历方法里面又有使用迭代器去进行遍历的例子,所以研究了一下这个问题。

2024-07-16 17:34:24 129

原创 Cookie的默认存储路径以及后端如何设置

vue跨域sessionId无法正常识别

2024-07-02 18:12:37 363

原创 SaToken框架实现在Rpc上下文的login处理逻辑

最近在工作中遇到一个需求,需要在项目A中实现一个rpc接口供其他项目调用,接口返回登录token,从而实现其他项目的用户能免密登录到项目A。项目A是用了SaToken来做的鉴权,原本我的打算是直接在rpc中调用StpUtil.login()方法来实现登录,并通过Stputil获取到token。

2024-05-06 23:20:59 750

原创 RocketMQ在windows的安装配置

启动mq服务器,也就是broker,在第一个cmd中,输入以下指令,启动broker并指定nameServer的ip和端口号。创建好环境变量后点击进入bin目录,直接在该目录下访问cmd,在命令行中输入以下命令来启动namesrver。启动好后会自动弹出新的cmd终端,表示nameSever的启动情况。成功启动后会再次启动一个cmd终端,显示broker已经启动成功。点击quick start,找到二进制下载包,点击就会自动下载。将下载好的压缩包解压到你要安装的路径后,去配置环境变量。

2024-04-09 14:36:17 244

原创 为什么@Mapper注解修饰的接口能被当做Bean对象使用

通过网上查阅资料,Mybatis框架在其中起到了作用,大致上就是再注入的时候,Mybatis框架将Mapper接口和xml配置的sql语句生成的代理对象交给Spring框架托管了,并没有明显的使用五大类注解来标识这个mapper接口是Spring的bean对象。而@Mapper注解是Mybatis框架的注解,它的作用就是给Mybatis框架标识一个接口,让Mybatis框架好识别。有两种方法可以让Mybatis框架识别接口。

2023-12-22 15:35:44 509

原创 java时间类

java的时间类非常复杂,这是由于jdk1.0到jdk1.1的时间类设计存在缺陷,导致使用不方便,线程不安全等问题,所以在jdk1.8,java又重新加入了一些时间类替换之前的时间类,但是jdk1.8为了兼容已经使用了老版本时间类的项目,并没有将老版时间类移除,只是将其中大部分方法标注为过时的,不推荐使用。第一列字母就是SimpleDateFormat能识别的关键字符,常用的y表示年,M表示月份,m表示分,H表示小时,s表示秒,d表示月份的天数。实例化之后Calendar对象获取的实例化时的瞬时时间。

2023-11-15 15:21:21 148

原创 Spring事务

Spring事务是Spring框架提供的一种便捷的进行数据库事务运行提交的方法,使用Spring事务可以大大降低事务编程的复杂度。

2023-11-03 23:14:14 219

原创 Spring事务的传播机制

传播机制解决了被事务修饰的方法互相调用时,到底是创建两个不同的事务,还是共用同一个事务的问题。

2023-11-03 23:09:03 689

原创 Redis的五大基础数据类型

链表类型,链表数据会按插入先后顺序存储在 链表结构中。集合类型,无序,可以再一个集合里面存多个值,如果值相同会合并为一个。字符串类型,通过set关键字和get关键字来设置字符串键值对和获取字符串键值对。sadd 集合名 值,值…(创建一个集合,并且项集合中添加这么多值)有序集合类型比普通集合多了一个排序属性,分值,分支越小,排序越靠前。Zadd 集合名 值 分值 值 分值…(向集合中添加值和分值)zrange 集合名 0 -1(查询所有值)lpush 链表名 值,值…有序集合类型Zset。

2023-10-15 20:27:29 368 1

原创 Redis的安装和配置

protected-mode模块是redis系统的安全模块,默认是开启状态,也就是yes,安全模式下,redis只允许本地连接。如果设置了bind项,则redis就只能被配置的那几个ip地址访问,如果将所有的bind都注释掉则代表当前redis服务器会接受所有的ip地址的访问。输入redis的服务器ip地址,以及redis的端口号,默认是6379,如果配置了密码还要输入密码。必须在后台启动redis服务器,否则终端就会被redis服务器占用,不能在输入命令操作了,除非关闭redis服务器。

2023-10-15 17:17:48 464

原创 在linux(centOS 7)服务器上操作数据库

yum install下载是从配置好的yum源软件仓库中下载的意思,购买厂商的服务器已经自动配置好了软件仓库了。如果配置了密码,就需要输入下面的命令,然后输入密码连接。安装后,默认情况下只有root超级用户,并且没有密码。5.使用命令行客户端连接mariaDB服务器。-y的意思是不用提示选项,所有选择默认yes。2.下载mariaDB命令行客户端。3.启动mariaDB数据库服务器。1.下载mariaDB数据库服务器。4.关闭mariaDB服务器。

2023-10-13 21:26:58 158

原创 加盐加密详解

加盐加密就是后端在存储一个密码的时候,为了提高安全性,随机生成一个盐值(随机值),将盐值和密码进行有规则的结合,然后将结合过后的数据使用加密算法(一般是md5加密)再次加密,然后将再次加密后的数据和盐值按着一定规则组合起来存放在数据库的加密流程。流程图:普通的加密手段就是只使用md5加密或者不加密。如果发生数据库信息泄露,账户和密码基本上算是直接泄露。因为md5加密的密码虽然不能被反推,但是md5加密后的密码都是唯一的,可以通过穷举的方式暴力破解。加盐算法就大大增加了黑客的破解成本。

2023-10-11 14:17:58 1989

原创 Mybatis的使用

Mybatis是一个ORM框架。ORM(Object Relation Mapping)对象关系映射,就是将关系型数据库的数据表和代码对象建立映射关系,自动的完成数据表和对象的相互转换。

2023-09-12 23:46:08 265

原创 Spring MVC

在spring官网的定义中,spring MVC的描述是:Spring web mvc是基于Servlet API的原始web框架,从一开始就包含在 Spring web框架中。Spring MVC是一个web框架。Spring MVC基于servlet。MVC(model,view,controller)是一种应用程序设计模式,包含了model,view,controller三个模块。model:用来处理应用程序数据逻辑的部分,通常负责数据库操作。view:用来处理数据显示的部分,

2023-09-11 23:32:06 288

原创 Spring Boot日志文件

Spring Boot的日志实现才有了日志门面+日志实现框架的模式。和数据库一样,日志实现框架有很多的厂商或者个人开发了,所以日志有很多种实现框架,每种框架的api都不相同,所以一个项目要切换日志的框架将非常的麻烦,所以有了日志门面。日志门面使用了一种api,但是可以驱动不同的日志实现框架,和JDBC类似。常用的日志实现框架:log4j 1/2,JUL,logback。常用的日志门面:commons-logging,SLF4J。

2023-09-10 23:31:35 376

原创 Spring Boot的配置文件

Spring Boot中的配置文件有两种:properties格式和yml格式。

2023-09-10 18:29:57 691

原创 Spring Boot

Spring Boot就是一个帮助我们快速搭建和部署Spring项目的框架,boot就是启动,开启的意思,Spring Boot可以理解为Spring项目的开启框架,很多人也叫它Spring脚手架。

2023-09-09 22:29:53 605

原创 idea的git入门

(3)创建成功之后,会发现文件名称都变红了,红名文件表示代码没有提交到本地缓存仓库。(1)安装好git之后,在idea的设置里面,按照下面三步,配置git。(4)这个gitignore就是配置上传的时候默认不上传的文件。并且刚刚选择的git根目录下出现了.git目录。选择本地仓库的根目录,点击ok。(2)创建本地git仓库。

2023-09-07 16:05:52 779

原创 Bean的生命周期

Bean的生命周期包括Bean的创建,Bean的使用,Bean的销毁三大过程。

2023-09-07 12:57:01 82

原创 Bean对象的作用域

Bean对象作用域虽然叫做作用域,但是和代码中的作用域有很大区别,用更易懂的话说,Bean的作用域是Spring容器在注入Bean对象时根据作用域配置来决定注入的Bean对象是共享的还是新创建的。

2023-09-06 23:00:20 408

原创 五大类注解和方法注解详解

五大类注解为@Controller,@Service,@Repository,@Configuration,@Component,方法注解为@Bean。

2023-09-06 21:07:11 209

原创 Spring原生api操作之如何在spring配置文件添加Bean对象到Spring容器

答:Bean对象就是往Spring容器中装入的对象,和一般的类对象没有什么不同,只是因为这些对象的创建使用销毁都有Spring管理,为了区分就把它们叫做Bean对象。

2023-09-06 12:08:31 219

原创 【Spring MVC】统一功能处理

上面的代码指定的异常类的class是所有异常的父类Exception,这样指定是起到一个保底的作用,因为异常是不可预知的,你在写代码的时候,并不知道代码会抛出什么异常,针对特定异常的处理是极少的,直接使用父类异常接受可以兜底保证异常抛出时,会被正确的处理。当前端传入的某些特殊数据时,可能会导致后端程序在执行时抛出异常,如果不对这个异常做出处理,后端会直接返回500的错误页面,破坏前后端交互的正常进行,异常处理的作用就是就算后端抛出了异常,响应也要按照正确格式返回,只是在返回的时候说明后端发生了错误。

2023-09-05 23:36:08 722

原创 MySQL数据库索引的数据结构

(3)因为只有叶子节点才有完整数据,所以每次查询都会查到叶子节点,并且b+树是平衡树,所以深度都差不多,所以不管查询什么数据,最后的io次数都是差不多的,保证了查询的稳定。(1)因为b+树的叶子节点中包含了所有的数据,所以只需要在叶子节点中存储一条完整的数据,非叶子节点只存储用来做索引的那一列的值,大大减小的存储空间。当一个表中除了主键之外,还有其他的索引的时候,其他的索引的叶子结点就不是存储的整条数据了,而是存储的主键索引的叶子节点的位置。(2)b+树的叶子节点包含了整个树所有的数据。

2023-09-01 13:23:07 386 1

原创 Cookie和Session

综上所述,Servlet中的Session实现是将sessionid和一个httpSession对象绑定,然后这个httpSession对象再存储账号信息,从而间接实现的sessionid和账号的绑定。

2023-08-31 01:15:39 116

原创 [Spring Boot]org.springframework.boot:spring-boot-starter-parent:pom:2.7.14.RELEASE was not found in

RELAESE的意思是正式发行的稳定版本,但是在中央仓库好想没有这个包,也不知道为什么使用默认创建Spring Boot项目会加上RELEASE。又用了网页版的创建方式,在网页版的文件夹下,发现能正常引入依赖。在网页版的依赖下面版本号只有2.7.14,没有RELEASE。配置国内源,和使用默认源都不行,就是死活说没找到这个依赖。将.RELEASE删除就能正确找到对应包了。

2023-08-24 14:30:34 382

原创 @Autowired注入和@Resource注入

注入时,首先Autowired会查找Spring容器中是否有User类的Bean对象,如果找到且只有一个,则直接注入这个对象,如果找到了多个,则继续通过下方的对象的名称在Spring容器中查找Bean的id,如果没找到直接报错,但是找到就将Bean对象注入到下方的属性中。(2)@Resource在spring容器中搜寻是先搜索名称,再搜索类型,如果搜索到有该名称只一个Bean,则直接注入,如果有多个,则再根据类型搜寻,类型不匹配则报错。2.由于这个对象有Setter方法,所以注入的对象可以被修改。

2023-08-23 00:33:47 388

原创 Spring的简介

Spring就是一个包含了众多工具类的IoC容器。(1)什么是IoC?IoC(inverse of control)控制反转,IoC是一种思想, 是为了让程序员更加专注于业务代码的逻辑关系,减少对依赖的创建和管理的关心。

2023-08-22 21:51:23 48

原创 linux常用命令

cd 在输入路径时可以按tab补全,但是当补全的选项不止一个时,就不会补全,此时连按两次tab就可以查看可以补全的选项有哪些。上面的echo,cat可以用来简单的数据编写,但是一旦数据复杂起来,就需要使用到vim进行编写查看数据了。Mv也可以用来修改文件名,mv 的目标如果是不存在的文件,则会将源文件修改为这个文件。2. 创建多级目录 mkdir -p 名/名/名。Cp的目标如果不存在,也是将新文件命名为目标文件。1.创建目录 mkdir 目录名。

2023-08-21 00:49:54 4528

原创 部署云服务器时出现的错误

2.在windows上下载的mysql不区分大小写,但是我在服务器上下载的mysql数据库又区分大小写,导致项目代码中生成的sql语句无法查询到对应的数据。1.mysql数据库的在服务器上和本机的密码不同,打包上去的密码还是本机的,导致项目访问不了服务器上的数据库。

2023-08-18 16:45:14 93

原创 form表单构造http请求的写法

method就是构造的http请求的方法。通过给input的name属性赋值作为键值对中的键,然后前端给input输入的值作为值。如果要构造多个键值对,就要构造多个input。form和input标签配合构造键值对,键值对就可以作为body或者query string跟随请求,传送给服务器。input标签的type属性的submit和button一样是按钮,但是submit是作为http请求的提交按钮。from是html的一个标签,from是html后早http请求的一种方式,它和input标签密切配合。

2023-08-13 22:05:55 226

原创 JDBC快速入门操作

JDBC是java用于连接数据库的api,数据库软件有多种,像MySQL,SQLsever,Oracle等数据库,这些数据库都是由不同的团队开发的,所以相同的功能的api的名字不同,当一个后端工程需要切换一个数据库软件时,就需要改写后端的大量跟数据库相关的代码,非常麻烦,所以Java自己提供了一套JDBC来兼容所有的数据库操作,各个厂商也根据Java的JDBC的api提供了自家数据库的驱动包,这样就是的JDBC编写时,只需要下载对应数据库的驱动包,就能使用同一套api操作不同的数据软件。

2023-08-12 14:31:53 154

原创 jackson库收发json格式数据和ajax发送json格式的数据

值可以是字符串,数字,布尔表达式,数组等,键值对之间用逗号隔开,一个大括号包括所有的键值对就组成了一个完整的json数据,也可以一个中括号包裹多个大括号,就代表一个json格式数据的数组。ajax是js的jquery库中的一个构造http请求的方法,其中ajax也是通过键值对来构造http请求的,ajax的参数就是一个js对象,这个对象中必须要有和http数据包的各种键值对,url表示网址,type或者method表示方法,data表示body部分。所以data的值必须是一个json格式的变量。

2023-08-11 18:05:00 1029

原创 servlet三大类HttpSevlet,HttpServletRequest,HttpServletResponse介绍

HttpServlet类是一个被继承的方法,可以看做一个专门用来响应http请求的类,这个类的所有方法都是为响应http请求服务的,要对一个某个路径谁知http响应时,需要写一个类来继承HttpServlet类,并重写里面的doGET,doPost之类的方法。还有很多其他的方法,都是获取http信息的方法。HttpServletRequest的方法都是get方法,用于获取http请求的信息,从而构建对应的响应。

2023-08-11 01:00:43 278

原创 【java】使用maven完成一个servlet项目

直接将war包复制,粘贴到tomcat的webapp目录下,然后启动tomcat服务器,看到服务器自动将war包解析出一个文件夹,就部署成功了。它的参数有rqs和resp两个,rqs的内容是根据http请求包赋值的,resq是这个doGet方法需要赋值的对象。maven是一个管理java项目的工具,根据maven的pom.xml可以引入各种依赖,插件。打包成功之后,左边会出现一个target文件夹,里面就有打包好的war文件。pom是项目的配置文件,后面会在这里修改配置。点击创建项目,项目创建就完成了。

2023-08-01 18:40:11 1120

原创 http协议

起初,老版本的浏览器,只能查看文本内容,后面慢慢能查看图片,视频等,这些浏览器访问一个网页时,显示完全不同,为了能正确显示,程序员直接针对各版浏览器,每个版本都做一个网站,此时UA就是服务器用来判断用户客户端需要哪个版本的网页参数。http请求真正要访问的地址,在之前的HTTP/1.0协议中,主机地址host是在url中出现的,但是为了,虚拟服务器和代理服务器的需要,在HTTP/1.1中引入了host,这个host是本次http请求真实要访问的ip地址。JSON格式的数据以键值对的形式表示,使用大括号。

2023-07-30 21:29:03 137

原创 如何使用fiddler进行抓包

fiddler是通过代理http服务的方式进行抓包的,它运行时回在你的计算机上架设一台虚拟服务器,当计算机发送http请求时,虚拟服务器会对请求进行拦截,然后再由这太虚拟服务器进行转发,fiddler架设的服务器作为中间人就能完整的记录http包的内容。首先需要下载fiddler,推荐使用bing搜索引擎搜索(百度搜狗一般搜这种工具展示的前几个全都是广告),直接搜索fiddler,搜出来第一个fiddler官网。进入下载页面后,正确填写一个邮箱,然后随便选择下载理由和地区,然后直接下载。

2023-07-30 04:49:43 586

原创 [css]css基础选择器和重用属性介绍

由前面三种基础选择器的两种组合而成,随意两种都能组成,选择器名的结构为:任意基础选择器名+空格+任意基础选择器名,比如:.row input,这个选择器的意思是,选中row类标签的后代标签中的所有input标签,包括子代,孙子等。使用格式是,任意基础选择器+冒号+hover/active,这样选中的是基础选择器对应的标签,hover和active的功能是让鼠标在悬停或者点击到被选中标签上时,这个标签的属性会变成伪选择器设置的属性。弹性布局开关打开后,可以对内容进行布局,布局的属性也要设置在父类的选择器中。

2023-05-31 22:42:10 166

原创 [html]html常用标签

br是换行标签,在html中要在界面显示上的文本主动换行要用br标签实现,在html的代码上普通的将内容换行不能实现最终显示的换行,只是在显示的内容上加上了一个空格。<html>标签是一个html代码的起手式,一般所有的标签都应该在html标签下,<html>标签是一个html代码的根节点。a是超链接标签,a有一个herf属性,herf属性就是超链接的连接地址,a的内容就是超链接在页面上显示的内容。body标签的内容是一个html文件的最后显示的内容,任何产生界面内容的标签都写在body标签下。

2023-05-31 15:18:39 58

原创 IP协议简介

NAT并没有创造出新的ip地址,它的本质是提高了ip地址的利用率,NAT将IP地址分为了内网ip和外网ip,并将192.168.*,127.*,10.*,172.16.*~172.31.*这些ip地址规定从ip地址中分出来,作为内网ip,其余ip作为外网ip,计算机在网络中通信使用外网ip,每个局域网共用一个外网ip,局域网内部使用内网ip标明主机,当内网主机要访问外网服务器,就先通过外网ip访问,当外网数据要发往内网,使用先发到外网ip,然后通过端口号,找到内网ip进而找到主机。1.2.1、子网掩码。

2023-05-26 23:30:41 181

sql语法总结思维导图

以思维导图的方式整体介绍sql,建库,建表,查表,删表的语法,xmind格式

2023-08-06

使用maven创建一个servlet项目流程

使用maven创建一个servlet项目流程

2023-08-01

空空如也

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

TA关注的人

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