
Java
文章平均质量分 82
Gavana.
个人博客——https://gavana.top
B站——土水不服(https://space.bilibili.com/602989659)
展开
-
深入掌握Redis:从原理到实践的全方位指南
Redis 是一款高性能的开源内存数据库,以其卓越的速度、灵活的数据结构和广泛的应用场景而闻名。本指南将带你从 Redis 的核心原理出发,深入探索其内部机制、数据结构、持久化策略、高可用方案以及性能优化技巧。无论你是初学者还是经验丰富的开发者,都将通过实践案例和最佳实践,掌握 Redis 在大规模数据处理、缓存、消息队列等场景中的应用,提升系统的性能和可靠性。通过本指南,你将从理论到实践,全面解锁 Redis 的强大功能,构建高效、稳定的数据存储解决方案。原创 2025-03-05 09:32:34 · 954 阅读 · 0 评论 -
Java多线程编程全指南:从基础到高级并发工具的深入解析
在现代软件开发中,多线程编程是提升应用程序性能的关键技术。本文将从Java多线程的基础概念出发,深入探讨线程生命周期、同步机制、并发工具类、线程池,以及实际开发中的性能优化与最佳实践,帮助开发者掌握Java多线程编程的精髓。原创 2024-09-04 17:45:47 · 1545 阅读 · 0 评论 -
从零开始搭建SpringCloud微服务集群:Nacos的安装和配置
官方给出的Nacos集群图:其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们计划的集群结构:此处的IP是你自己服务的IP,不一定要按照我的来。原创 2023-11-10 09:14:04 · 575 阅读 · 0 评论 -
图文解析 Nacos 配置中心的实现
Nacos。Nacos主要提供两种服务,一是配置中心,支持配置注册、变更下发、层级管理等,意义是不停机就可以动态刷新服务内部的配置项;二是作为命名服务,提供服务的注册和发现功能,通常用于在RPC框架的Client和Server中间充当媒介,还附带有健康监测、负载均衡等功能。本文聚焦于Nacos的第一块功能,即配置中心的实现。先叙述一个配置中心通常需要哪些组成部分,再结合的源码,探究一下这些设计是如何反映在源码上的。本文聚焦于Nacos。原创 2023-11-09 22:48:57 · 1242 阅读 · 0 评论 -
Spring Gateway基础知识总结
在微服务架构中,一个系统会被拆分为多个微服务,那么作为客户端如何去调用这些微服务呢?客户端多次请求不同的微服务,增加了客户端代码或配置编写的复杂性认证复,每个微服务需要独立认真存在跨域问题,在一定场景下处理相对复杂为了解决上述问题引入了网关概念:所谓的API网关就是指系统的统一入口,提供内部服务的路由中转,为客户端提供统一的服务,一些与业务本身功能无关的公共逻辑可以在这里实现,例如认证、鉴权、监控、路由转发等。原创 2023-11-08 22:36:08 · 1941 阅读 · 0 评论 -
如何实现token续期——双token实现
我们知道token的失效时间,是在创建时就规定的时间,如果时间一到,用户即使任然在操作,那么也会强制退出,体验非常不好,本文介绍token续期的常见方式之一双token。原创 2023-10-24 08:48:04 · 1527 阅读 · 1 评论 -
Redis通用指令和五大基本数据类型常用指令总结
zrangebyscore key min max [WITHSCORES] [LIMIT] (这个命令的作用是返回有序集合 key 中分数在 min 和 max 之间的所有成员,按照分数从小到大的顺序排列。zinterstore destination numkeys key [key ...] 集合交、并操作,并存储 (numkeys 是参与运算的key的个数)lrange key start stop 获取数据(循环变量) ,start和stop是下标,0开始,stop为-1代表到末尾。原创 2023-10-11 08:41:17 · 517 阅读 · 0 评论 -
Linux常用命令总结
firewall-cmd --zone=public --add-port=8081/tcp --permanent (–permanent永久生效,没有此参数重启后失效) 开放端口。firewall-cmd --zone=public --remove-port=6379/tcp --permanent 删除开放端口。tar -zxvf 要解压的文件.tar.gz -C 解压的位置 (有.gz都才能能解压)tar -xvf 要解压的文件.tar.gz -C 解压的位置 (有没有.gz都能解压)原创 2023-10-11 08:38:13 · 171 阅读 · 0 评论 -
前后端分离中,前端请求和后端接收请求格式总结
2)前端:(http:xx/a/b) 后端:@RequestMapping(xx/{a}/{b})+@PathVirable("a") int a , @PathVirable("b") int b。1)前端:传统键值对(http:xx?a=1&b=1) 后端:@RequestParam("a") int a , @RequestParam("b") int b。3)前端:(http:xx,{params:{a:1 , b:1}}) 后端:@RequestBody 对象。原创 2023-10-11 08:33:20 · 524 阅读 · 0 评论 -
[全家桶之SpringMVC]SpringMVC 的模块和结构
SpringMVC的模块主要包括以下几个:Web模块:这个模块提供了Spring对Web项目的支持,包括文件上传、异常处理、国际化、主题等功能。WebMVC模块:这个模块是SpringMVC的核心,它包含了前端控制器、处理器映射器、处理器适配器、视图解析器等组件,以及对RESTful风格的URL、数据绑定、校验、拦截器等功能的支持。WebServlet模块:这个模块提供了一些与Servlet相关的类和接口,例如DispatcherServlet、HttpServletBean等。原创 2023-09-21 08:48:20 · 297 阅读 · 0 评论 -
Spring 全家桶知识点总结大全——学习不迷茫,一文罗列所有知识!
包括SpringMVC、Spring、SpringBoot、SpringSecurity、SpringCloud技术的知识点的罗列和理解。我也在持续更新,持续学习ing,攻克一个标记一个🔥。把热爱变成自己的生活日常,是非常酷的事情👖你又是为什么学习编程呢😊原创 2023-09-18 17:10:49 · 289 阅读 · 0 评论 -
@Validated 和 @Valid 的区别,你真的懂吗?SpringBoot 参数校验必知必会!
Valid是使用Hibernate validation的时候使用@Validated是只用Spring Validator校验机制使用说明:java的JSR303声明了@Valid这类接口,而Hibernate-validator对其进行了实现@Validation对@Valid进行了二次封装,在使用上并没有区别,但在分组、注解位置、嵌套验证等功能上有所不同,这里主要就这几种情况进行说明。原创 2023-09-18 16:01:22 · 577 阅读 · 0 评论 -
MybatisPlus入门教程:如何轻松实现CRUD操作
/ 根据 Wrapper,查询一条记录。// 根据updateWrapper尝试更新,否继续执行saveOrUpdate(T)方法。// 根据 UpdateWrapper 条件,更新记录 需要设置sqlset。// 根据 whereWrapper 条件,更新记录。// 根据 columnMap 条件,删除记录。// 根据 Wrapper 条件,查询全部记录。// 根据 entity 条件,删除记录。// 根据 Wrapper,查询一条记录。// 根据 Wrapper,查询一条记录。原创 2023-09-17 08:40:14 · 226 阅读 · 0 评论 -
Mybatis逆向工程实战:如何快速生成实体类、Mapper接口和配置文件
正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper配置文件Mybatis是一个强大的持久层框架,它可以让你的数据库操作更加方便、高效和优雅。但是,如果你要手动编写实体类、Mapper接口和配置文件,那么你可能会觉得很繁琐、重复和容易出错。有没有一种方法可以让你自动地生成这些代码呢?答案是肯定的,那就是Mybatis的逆向工程功能。原创 2023-09-17 08:19:12 · 1991 阅读 · 0 评论 -
MybatisPlus逆向工程入门指南:让你的开发更高效、更简洁、更优雅
MybatisPlus如何实现逆向工程正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper配置文件。原创 2023-09-17 07:22:35 · 1852 阅读 · 1 评论 -
Spring IOC 容器:掌握 Spring 的核心技术
IOC(Inversion of Control,控制反转)是一种设计思想,它的目的是实现对象之间的解耦,让对象的创建和管理由第三方(如 Spring 容器)来完成,而不是由对象自己或使用对象的类来完成。这样可以提高代码的可维护性和可扩展性。// UserService 依赖于 UserDao// 调用 UserDao 的方法在这个例子中,UserService 类依赖于 UserDao 类,它需要在自己的内部创建 UserDao 的实例,并调用其方法。原创 2023-09-14 10:18:30 · 404 阅读 · 0 评论 -
BasicDao、mybatis、mybatisPLUS的区别
BasicDao是一个自定义的类,用于封装一些基本的数据库操作,如插入、删除、修改、查询等。它使用了Apache Commons DbUtils库,以及JdbcByDruid工具类,来简化JDBC的使用。mybatisPLUS是一个基于mybatis的增强框架,它可以简化mybatis的操作,提供了一些常用的功能,如动态条件查询、分页查询、自动填充、逻辑删除等。没学mybatis之前写了一个BasicDao。原创 2023-09-05 16:49:44 · 202 阅读 · 0 评论 -
Vue+Element-ui+SpringBoot搭建后端汽车租赁管理系统
最近在做项目,花了一周的时间搭建了一个十分完备的汽车租赁后端管理系统。页面采用纯Vue2+Element-ui搭建,后端采用Springboot+Mybatis搭建,数据库采用Mysql。包括了登录验证,根据不同权限进入不同界面、数据增删改查、表格分页、表格excel导出等等功能。原创 2023-09-04 16:28:01 · 2639 阅读 · 8 评论 -
SpringBoot轻松搞定文件上传和显示
文件上传控制器类,用于处理文件上传的请求。文件存储服务类,用于保存上传的文件到指定的目录。文件上传配置类,用于配置文件存储的路径和大小限制。文件上传页面,用于选择和提交文件。文件显示控制器类,用于处理文件显示的请求。文件显示页面,用于显示文件本文的内容就到这啦!原创 2023-08-30 22:29:17 · 1842 阅读 · 0 评论 -
Springboot四种实现鉴权方式各自的优缺点
AOP(面向切面编程)是一种编程思想和技术,它可以在不修改原有代码的情况下,在程序运行时动态地将一些通用功能插入到指定位置,比如日志记录,事务管理,性能监控等。:Spring Security是一个基于Spring的安全框架,它提供了一套完整的安全解决方案,包括认证,授权,密码加密,会话管理,攻击防护等。:过滤器是基于Servlet规范的一种机制,它可以在请求到达Servlet之前或之后进行过滤和处理,比如编码转换,压缩传输,安全检查等。原创 2023-08-28 08:37:10 · 1413 阅读 · 0 评论 -
SSM vs Spring Boot+Mybatis:哪个框架更适合你?
综上所述,SSM框架和Spring Boot+Mybatis框架都有各自的优缺点,没有绝对的好坏,只有适合不适合。Spring Boot+Mybatis框架是指使用Spring Boot作为基础框架,并集成Mybatis作为持久层框架的组合,它是一个基于Spring框架的快速开发工具,可以简化Spring应用的创建和配置。SSM框架是指Spring+Spring MVC+Mybatis三个框架的组合,它是一个传统的Java Web开发框架,可以实现Web层、业务层和持久层的分离和整合。原创 2023-08-27 15:52:20 · 1427 阅读 · 0 评论 -
SSM框架和Spring Boot+Mybatis框架的性能比较?
综上所述,SSM框架和Spring Boot+Mybatis框架的性能比较,并没有一个明确的结论,而是需要根据具体的项目需求和场景来进行权衡和选择。一般来说,如果项目比较简单,需要更快的开发和部署,可以选择Spring Boot+Mybatis框架;如果项目比较复杂,需要更多的自定义和控制,可以选择SSM框架。SSM框架和Spring Boot+Mybatis框架的性能比较,没有一个绝对的答案,因为它们的性能受到很多因素的影响,例如项目的规模、复杂度、需求、技术栈、团队水平、测试环境、测试方法等。原创 2023-08-27 15:43:58 · 918 阅读 · 0 评论 -
Springboot+Mybatis框架是否会取代SSM框架?
综上所述,Spring Boot+Mybatis框架并没有从技术上取代SSM框架,而是在其基础上提供了更多的优势和特性,但从市场上来看,Spring Boot+Mybatis框架可能会逐渐替代SSM框架,成为主流的Java Web开发框架。Spring Boot+Mybatis框架是指使用Spring Boot作为基础框架,并集成Mybatis作为持久层框架的组合,它是一个基于Spring框架的快速开发工具,可以简化Spring应用的创建和配置。先说结论,从市场使用来说,会有这个趋势。原创 2023-08-27 15:40:50 · 553 阅读 · 0 评论 -
Springboot 入门指南:控制反转和依赖注入的含义和实现方式
控制反转(Inversion of Control,简称 IoC)是一种设计原则,它的目的是降低代码之间的耦合度,提高模块化和可测试性。控制反转的含义是,将对象的创建、配置和管理交给一个外部容器来完成,而不是由对象自己或使用对象的类来完成。这样,对象就不需要知道或关心它们的依赖关系是如何被创建和维护的,只需要按照一定的规则和接口与容器进行交互即可。在 spring 框架中,IoC 容器就是负责实现控制反转的核心组件,它可以通过配置文件或注解的方式来管理应用程序中的各种 bean(即被容器管理的对象)。原创 2023-08-26 17:20:49 · 1496 阅读 · 1 评论 -
SpringBoot注解详解:从核心到Web,从数据到测试,一网打尽
springboot的常用注解可以分为以下几类:核心注解:这些注解是springboot的基础,用于启动、配置和管理springboot应用。Web MVC注解:这些注解是基于spring MVC框架的,用于处理Web请求和响应。数据访问注解:这些注解是基于spring data框架的,用于操作数据库和缓存。测试注解:这些注解是基于spring test框架的,用于编写和运行单元测试和集成测试。下面分别介绍这些注解的具体含义和用法。原创 2023-08-26 16:37:32 · 714 阅读 · 0 评论 -
SpringBoot及其他框架乱码问题的原因和解决
SpringMVC,Spring,SpringBoot乱码问题是一个常见而又容易忽略的问题,需要我们在开发和部署过程中注意编码格式的一致性和正确性。通过以上几种方法,我们可以有效地避免或者解决乱码问题,提高系统的可用性和用户满意度。原创 2023-08-25 11:20:21 · 4330 阅读 · 0 评论 -
SpringBoot上传文件的实现与优化
文件上传是指客户端将本地的文件通过HTTP协议发送到服务器端的过程。文件上传是Web开发中常见的功能之一,例如用户可以上传头像、照片、视频、文档等各种类型的文件。文件上传涉及到客户端和服务器端的交互,需要考虑文件的大小、格式、安全性、存储方式等多方面的因素。原创 2023-08-25 11:00:21 · 2429 阅读 · 0 评论 -
Spring AOP:面向切面编程的简介和实践
AOP(Aspect Oriented Programming),即面向切面编程,是一种编程范式,它可以将一些与业务无关,但是在多个模块中重复出现的逻辑或功能,抽象出来,形成一个独立的模块,称为切面(Aspect)。这样,我们就可以将这些切面在运行时动态地插入到目标对象中,从而实现对目标对象的增强或修改,而不影响目标对象的核心业务逻辑。AOP可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。原创 2023-08-25 09:10:18 · 394 阅读 · 0 评论 -
Spring Boot中如何编写优雅的单元测试
本文介绍了如何在Spring Boot中编写优雅的单元测试,包括如何添加单元测试依赖,如何对不同层次的组件进行单元测试,以及如何使用Mock对象和Spy对象来模拟真实对象行为。本文还给出了每种类型的单元测试的示例代码,并解释了其中的关键点和技巧。通过编写单元测试,可以提高Spring Boot应用的质量和稳定性,同时也可以提高开发者的编程水平和信心。希望本文能够对你有所帮助和启发,让你能够在Spring Boot中编写优雅的单元测试。原创 2023-08-25 07:27:05 · 12059 阅读 · 0 评论 -
FactoryBean和BeanFactory:Spring IOC容器的两个重要角色简介
本文介绍了FactoryBean和BeanFactory两个与Spring框架相关的重要概念。它们虽然名字相似,但是功能和用法却有很大的区别。通过理解它们的定义,特点,区别和使用场景,我们可以更好地利用Spring框架提供的IOC容器来管理和配置Java对象。原创 2023-08-24 22:50:52 · 1079 阅读 · 0 评论 -
Spring IOC容器:让Java对象的管理和配置更简单
在Java开发中,我们经常需要创建和使用各种Java对象,例如实体类,服务类,控制器类等。这些对象之间通常存在着一定的依赖关系,例如一个服务类可能需要调用另一个服务类或一个数据访问类的方法。在代码中通过new关键字或工厂方法来创建对象,并为其属性赋值。在代码中通过get或set方法来获取或设置对象的依赖对象。在代码中通过接口或抽象类来定义对象的行为,并在运行时通过多态来实现对象的替换。我们需要在代码中硬编码对象的创建和配置,这可能导致代码的耦合度高,可读性和维护性低。原创 2023-08-24 22:43:10 · 509 阅读 · 0 评论 -
MyBatis:使用注解让数据库操作更简单
在Java开发中,数据库操作是一个常见而重要的任务。为了方便地执行SQL语句,获取结果集,处理异常等,我们通常需要使用JDBC(Java Database Connectivity)API,这是一个标准的数据库访问接口。我们需要编写大量的重复代码,如加载驱动,创建连接,关闭资源等。我们需要手动设置参数和获取结果集,这可能导致类型不匹配或空指针等错误。我们需要硬编码SQL语句,这可能导致可读性和维护性的问题。原创 2023-08-24 22:34:23 · 1400 阅读 · 0 评论 -
如何优雅地创建一个自定义的Spring Boot Starter
本文介绍了如何创建一个自定义的Spring Boot Starter,以及它的命名规范、项目结构、依赖管理、属性类、业务功能类、自动配置类、自动装配文件和使用方法。通过创建一个自定义的Starter,我们可以将一些通用的功能或组件封装起来,方便在不同的项目中复用,提高开发效率和代码质量。同时,本文也介绍了Starter项目的原理和机制,帮助我们深入理解Spring Boot的自动装配特性。不禁感慨,优雅,实在是优雅!原创 2023-08-24 18:07:10 · 4964 阅读 · 2 评论 -
Spring Boot:让你轻松掌握自动装配的奥秘
自动装配是指Spring Boot根据项目中引入的依赖,自动配置相关的Bean,并将它们注册到Spring容器中,从而实现某些功能或特性。例如,如果我们在项目中引入了spring-boot-starter-web依赖,那么Spring Boot就会自动配置一个嵌入式的Tomcat服务器,一个DispatcherServlet,以及一些其他与Web开发相关的Bean。自动装配可以简单理解为:通过注解或者一些简单的配置就能在Spring Boot的帮助下实现某块功能。原创 2023-08-24 16:57:29 · 139 阅读 · 0 评论 -
你还在用 JSP 吗?快来试试 thymeleaf 吧!
本文介绍了thymeleaf模板引擎的概念、特点和使用方法,并分析了它的优势和局限性。我们可以看出,thymeleaf是一种适合于现代HTML5 JVM Web开发的模板引擎,它可以让我们更容易地创建优雅和自然的模板。当然,在使用thymeleaf时,我们也需要注意一些语法规则和性能问题。原创 2023-08-24 09:16:56 · 495 阅读 · 0 评论 -
SpringBoot-yml配置文件的使用与优势
本文介绍了yml配置文件的语法、特点和使用方法,并与properties配置文件进行了对比,分析了yml配置文件的优势和局限性。我们可以看出,yml配置文件是一种更简洁、更灵活、更方便的配置文件格式,它可以让我们更容易地管理和切换不同环境或模块的配置。当然,yml配置文件也有一些需要注意的地方,如缩进、空格、数据类型等,我们需要遵循yml的语法规则,否则可能会导致配置文件无效或出现错误。原创 2023-08-24 09:05:48 · 1809 阅读 · 0 评论 -
Spring、SpringMVC、SpringBoot三者的区别
视图是应用程序的展示层,负责渲染用户界面。Spring是一个开源的应用程序框架,它提供了一种简易的开发方式,通过依赖注入和面向切面编程,可以实现高内聚低耦合的应用程序。Spring还提供了多个模块,如Spring AOP,Spring JDBC,Spring MVC,Spring ORM,Spring JMS,Spring Test等,可以与各种第三方框架进行整合。DispatcherServlet负责将请求分发给相应的控制器,并将控制器返回的模型和视图名称解析为具体的视图对象,最终将视图渲染给用户。原创 2023-08-24 08:52:50 · 927 阅读 · 0 评论 -
[Java优选系列第2弹]SpringMVC入门教程:从零开始搭建一个Web应用程序
本文将详细介绍如何使用SpringMVC来开发一个简单而优雅的Web应用程序。我们将从创建一个Maven项目开始,然后配置SpringMVC所需的依赖和文件,接着编写控制器类和并介绍常用的注释、配置类中的方法、坐标,最后运行我们的应用程序。通过本文,你将能够快速入门和掌握SpringMVC的核心概念和功能。原创 2023-08-19 22:59:57 · 1068 阅读 · 0 评论 -
[Java优选系列第1弹]如何优化Java三层架构开发效率?三个实用技巧分享
目前开发三层架构效率最高的方法。使用泛型编写BasicDao+Druid数据库连接池,让其他Dao层继承它实现复用,同时其他的Dao扩展自己的业务。使用动态代理+ThreadLocal对象保证事务的一致性。实现通用Servlet+反射,处理多个请求,统一进入到一个Servlet中,减少代码冗余。原创 2023-08-15 20:28:27 · 453 阅读 · 0 评论 -
Java 编程实战:如何用 Java 编写一个简单而强大的 Tomcat
本文介绍了如何使用 Java 编写 Tomcat,并实现一个简单的 Web 服务器和 Servlet 容器。本文还介绍了 Tomcat 的基本框架和相关配置,并使用 Eclipse 进行开发和调试。本文旨在帮助伙伴们理解和掌握 Tomcat 的原理和用法。Tomcat 是一个开源的 Web 服务器和 Servlet 容器,它可以提供动态 Web 内容的处理和交互功能。Tomcat 是用 Java 语言编写的,需要运行在 Java 虚拟机上,所以它可以跨平台运行,并且可以与其他 Java 技术集成。原创 2023-08-08 12:18:28 · 2505 阅读 · 1 评论