自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux下安装Zookeeper

AdminServer是ZooKeeper中的一个内置组件,它允许管理员通过命令行或web界面的方式对ZooKeeper进行监控和管理。而"admin.serverPort"就是AdminServer监听的端口号。3.2.1.拷贝配置文件中的样例配置文件zoo_sample.cfg并命名为zoo.cfg。3.1.进入到zookeeper压缩包所在目录并解压。3.2.2.进入刚刚拷贝的这个文件,修改配置信息。3.2.zookeeper的配置。修改完成后esc输入:wq保存。输入命令运行zookeeper。

2023-12-09 22:53:23 473

原创 Linux下安装java以及Tomcat环境

下载完后可以使用Xftp或者WinScp这样的文件传输工具直接发送到Linux中home目录下。环境变量就是在这个里面配置的,我们只需要在最后添加配置即可,注意jdk版本。也可以查看到我们的安装位置是在usr目录下的,后面配置环境变量会用到。添加成功后保存,使用source命令让配置生效。注意,只删除圈中的两个。进入到系统环境配置文件。

2023-12-02 21:25:38 487

原创 设计模式----工厂模式

工厂模式,顾名思义,肯定是生产某样东西的,在Java中那肯定是生产对象的啦,在Java中,万物皆对象,传统地我们需要用到对象的时候,通常是new出来,比如我要一个Apple类的实例,就是Apple apple = new Apple();接下来我们就可以使用这个实例,但是这样的话就会造成耦合重的问题,比如现在要更换对象,程序中所有new对象的地方都要修改一遍,这样做就违背了开闭原则;

2023-11-29 17:51:09 986

原创 设计模式---单例模式

单例模式,顾名思义,就是保证单例,确保某个类只有一个实例存在,并且这个实例是这个类自行实例化并且供整个系统使用。例如生活中打印机就是一个很好的单例模式的实现,每台计算机可以有多个打印机,但是只能有一个Pringt Spooler,相当于只能有一个调度中心,他会调度打印工作,防止多个打印工作输出到同一台打印机,确保准确性,一致性。选择单例模式最大的优点就是避免不一致状态,保证全局对象的唯一性。我们知道,序列化可以将一个单例的实例对象写到磁盘,必然也可以再反序列化读回来,这样会获得一个新的实例。

2023-11-19 18:40:38 56

原创 SpringBoot中读取yml配置文件中的数据的方式

*** 读取yml配置中的数据有三种方式* 1.直接定义变量然后通过@Value注解赋值读取* 2.通过Environment对象读取* 3.通过封装实体类来读取*/System.out.println("获取到的端口号为:"+portNum);System.out.println("获取到的subject信息为:"+subject_02);

2023-11-03 16:12:09 3523

原创 Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as

Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Wed Nov 01 19:42:30 CST 2023There was an unexpected error (type=Not Found, status=404).总之,出现该错误的主要原因就是粗心了,多检查检查一些细节上的错误。

2023-11-01 19:51:47 3374

原创 No converter found for return value of type: class java.util.ArrayList

整合ssm小demo的时候测接口遇到该错误,这篇博客帮我解决了难题。

2023-10-29 19:43:19 32

原创 Spring集成JUnit4报错严重: Caught exception while allowing TestExecutionListener [org.springframework.test.

【代码】Spring集成JUnit4报错严重: Caught exception while allowing TestExecutionListener [org.springframework.test.

2023-10-29 16:54:42 515

原创 关于静态块,构造块容易混淆的题目

我们都知道类加载过程中静态变量如果不是final常量的话是会先赋初值而不是直接赋值(这里会先赋值为null,而不是对象B的实例),类加载首先会加载静态域,这里静态变量是在静态块之前的,所以这里加载顺序应该最先是静态变量,静态变量赋初值null会用到构造方法和构造块,并且构造块永远在构造方法之前执行,因此会先完成两个静态变量的赋值操作,也就是会执行两次构造块,然后就是执行静态域中的静态块,最后在main函数中还有一个赋值操作,因此又会执行一次构造块。首先静态块并不是永远第一个被加载的,静态域才是,而。

2023-10-29 11:20:26 27

原创 Spring初始化bean的三种方式(构造函数,静态工厂,实例工厂)

当我们使用 Spring 框架时,最常见的任务之一就是初始化 Bean。Bean 是 Spring 框架的核心概念之一,它代表了应用程序中的一个对象,可以是任何 Java 对象。以下介绍Spring实例化bean的三种方式。

2023-10-26 18:03:08 1035

原创 【记录】自用SSM整合简单的项目结构 ----- 一些依赖和配置文件以及流程

最近发现老是没有一个能完美契合自己环境的装配过程,导致每次想搭建SSM的时候从网上复制经常报错,于是想自己写一份属于自己环境的整合教程,对于SSM这种配置地狱,感觉最好还是将自己的环境搭建整理出来。

2023-10-23 00:27:55 85

原创 InnoDB和MyISAM的区别是什么?

综上,InnoDB能提供事务支持,较好的并发性能和数据完整性保证。如果对事务支持要求不高,更注重查询性能,可以考虑使用MyISAM的存储引擎。

2023-10-20 19:34:20 41 1

原创 MySQL中有大量数据,如何保证Redis中的数据都是热点数据

根据业务需求和数据访问模式,选择合适的缓存策略。常见的缓存策略包括LRU(Least Recently Used,最近最少使用)、LFU(Least Frequently Used,最不经常使用)和TTL(Time to Live,生存时间)等。根据实际情况,可以选择合适的策略来淘汰不常访问或过期的数据,从而保留热点数据。以确保Redis中的数据都是热点数据。:当 MySQL 中的数据发生更新时,及时更新 Redis 中对应的缓存数据。提前将热点数据存入Redis中,避免在高峰期出现缓存穿透和缓存击穿。

2023-10-18 21:16:06 203 1

原创 【记录】错误--(java.lang.IllegalStateExcept)Duplicate key Validate JSPs in

项目结构中的misc.xml文件是一个用于配置项目特定细节的文件,其中可能包含与JSP验证相关的设置。删除misc.xml文件可能会重置或移除与JSP验证相关的配置,从而解决了重复键名的问题。当删除misc.xml文件后,IDE或构建工具在重新构建项目时会重新生成默认的配置文件,这些新的配置可能与原来的配置不同,从而导致了问题的解决。在写一个有关springmvc的小demo部署项目的时候发生了如下错误,检查了tomcat和工件都没问题,在网上查找到一个方法。解决:将这个东西删掉然后重新运行就可以了。

2023-10-17 12:10:03 324

原创 Spring中循环依赖和三级缓存

我们首先要知道循环依赖和三级缓存是并存的,也就是说三级缓存就是为了解决循环依赖而存在的。1.什么是循环依赖循环依赖的意思是Spring中的某个Bean在创建过程中需要用到的依赖也需要用到自身(两个或者多个Bean之间相互持有对方的引用),依赖情况分为三种,相互依赖,三者间依赖,自我依赖。Bean的创建主要分为两步,一是创建原始对象,二是填充对象属性和初始化;我们这里说到的循环依赖就是两个Bean都只能创建出原始对象,无法依赖注入,永远卡在填充对象属性这一步。如下,两个Bean陷入循环依赖。

2023-10-14 21:44:51 33 1

原创 Cookie和Session到底有什么不一样

当用户再次访问同一网站后,浏览器在向服务器发送Http请求的同时,请求信息的请求头中附加了Cookie的信息,以便服务器可以根据这些信息进行识别和定制化操作。数据存储方式:Cookie将数据以键值对的形式存储在用户的浏览器中,可以持久保存在客户端,即使用户关闭浏览器后再次打开也能继续使用;而Session适合存储较多或敏感的数据,能够实现用户登录状态的保持和数据的安全管理。存储容量:Cookie的存储容量有限,一般为几KB到几十KB,而Session可以存储较大的数据,受服务器硬件和配置的限制。

2023-10-14 16:27:36 41 1

原创 String类为什么用final关键字修饰?

可以作为 Map 的键:由于字符串的不可变性,它们可以安全地用作哈希表中的键。如果字符串对象是可变的,那么在将字符串对象作为键时,如果修改了字符串的值,可能会导致无法正确地检索到对应的值。String类中有native关键字修饰的调用系统级别的本地方法,调用了操作系统的API,如果方法可以重写,可能会被恶意植入代码,破坏程序,体现了Java的安全性。我们都知道字符串是不可以直接修改的,点进String的源码发现String类是被final修饰的,也就是说String类也是不可以被继承的。

2023-10-14 11:09:24 151 1

原创 反射的入门

反射就是让程序行中可以运动获取态地类的信息,包括类的字段,方法等。通过反射,我们可以在不知道具体类名的情况下,获取类的全限定名,并通过Class.forName(全类名)方法获取对应的Class对象。然后,你可以使用Class对象获取类的各种信息,如类的修饰符、父类、接口、字段、方法和构造函数等。

2023-10-12 19:04:28 27

原创 线程基础---入门很简单

线程(Thread)是操作系统分配处理器时间的基本单位,也是程序执行的最小单元。一个进程中可以包含多个线程,这些线程可以并行或并发地执行,共享同一进程的资源。线程就是程序执行过程中的一个打工仔,程序执行离不开进程,线程就是进程单位下的打工仔,它的作用就是让打工效率更高。进程(Process)是正在运行的程序的实例,他是操作系统分配资源和调度人物的基本单位。每个进程都有自己独立的执行上下文和内存空间等,进程之间不可以直接相互访问,需要通过操作系统提供的机制(进程通信)才能进行数据交换和共享。

2023-10-09 15:08:42 56 1

原创 【记录】HashMap

(多个key经过哈希计算后的索引相同),HashMap会将这些数据用链表的方式存储在同一个位置,具体而言就是新的数据会被插入到同一位置的链表头部。HashMap(基于哈希表的Map接口的实现)是Java集合框架中的一个分支,采用键值对(key,value)的格式存储数据。HashMap允许键和值为null,并且不保证它们的顺序。HashMap内部有一个哈希表(table),当向HashMap存入(put)数据的时候,会先根据键计算出哈希码然后存储在table中,所以HashMap存储数据是无序的;

2023-10-06 16:59:57 27 1

原创 【记录】缓存穿透

客户端向服务端发起查询请求的时候,缓存里面没有该请求要的的数据,接着就会从数据库中获取,此时数据库里也没有请求要的数据,导致每次查询都直接穿透了缓存,直接访问数据库,如果有不怀好意的人故意制造请求访问数据库,就可能导致数据库崩溃。

2023-09-22 19:47:56 18

原创 【记录】低级错误---if判断语句中的空指针异常

在我看来,这两个逻辑条件是独立于彼此的,交换顺序并不会有什么影响。在这里feedBackPageDTO类中cityId是Integer类型,所以feedBackPageDTO.getCityId()返回的也是一个Integer类型的值,而不是基本数据类型 int,那么先执行。Java中一个空引用调用了实例方法或访问实例字段就会触发空指针异常,因此在一个可能为null的数据的时候最好先比较这个数据是否!为null时,条件判断为false,不会继续执行后面的逻辑判断,也就可以避免了在null引用上调用。

2023-09-22 10:12:57 105

原创 【记录】Mybatis-Plus逆向工程

【代码】【记录】Mybatis-Plus逆向工程。

2023-09-15 15:46:28 1044

原创 【记录】搭建spring mvc的相关配置

【代码】【记录】搭建spring mvc的相关配置。

2023-09-11 15:20:41 21

原创 精简但通俗易懂的spring mvc的核心执行原理

总结起来,Spring MVC框架的工作原理可以简单概括为:前端控制器接收请求,通过处理器映射器找到对应的处理器进行处理,处理器生成处理结果,再通过视图解析器找到真正的视图进行渲染,最后返回给客户端。处理器映射器(Handler Mapping):前端控制器收到请求后,会将请求的URL发送给处理器映射器。响应发送回客户端:前端控制器获取到渲染好的响应后,将其发送回客户端(浏览器等),完成请求-响应循环。渲染视图并生成响应:视图解析器将找到的物理视图渲染为HTML或其他格式,并将其返回给前端控制器。

2023-09-10 22:21:26 59

原创 maven静态资源过滤问题

【代码】maven静态资源过滤问题。

2023-09-09 16:21:12 95

原创 节流和防抖

1. 例如网页中的搜索框,检索用户输入的时候,如果用户每执行输入操作就触发事件执行检索操作的话,会造成不必要的性能浪费,防抖就是解决这类问题,在用户完成触发某事件一定时间后再执行操作。2. 网页窗口resize不断发生改变时,使用防抖可以让高频操作变成只触发一次。防抖存在一个问题,事件会一直等到用户完成操作后一段时间再操作,如果一直操作,会一直不触发。比如一个按钮,点击后就会发送请求,防抖中如果一直点击就不会被触发;此时就要用到节流,用户点击后立即触发发送请求事件,但是在指定时间内不会再次执行操作。

2023-07-05 22:46:18 22

空空如也

空空如也

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

TA关注的人

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