◆一. 外观模式◆1. 背景在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必
......
18
0
0
2024-10-25
引言在当今互联网时代,随着软件开发的日益复杂和业务需求的不断变化,传统的单体应用已经不能满足现代化软件开发的需求。微服务架构因其松耦合、灵活性高等优点,成为了当前流行的软件架构之一。然而,微服务架构也带来了一系列新的挑战,如服务治理、分布式系统调用等问题,为了解决这些挑战,涌现出了大量的微服务框架和工具。Spring Cloud作为基于Spring Boot
......
35
0
0
2024-10-14
原文由作者授权,首发在奇安信攻防社区https://forum.butian.net/share/2909在Java Web代码审计中,寻找和识别路由是很关键的部分。通过注册的路由可以找到当前应用对应的Controller,其作为MVC架构中的一个组件,可以说是每个用户交互的入口点。简单介绍下Java Web中常见框架(Spring Web、Jersey)寻
......
47
0
0
2024-10-01
这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来从一个示例开始请看以下这个类图,类之间的关系是我们需要关注的:车的类图结构为<>,表示车是一个抽象类;它有两个继承类:小汽车和自行车;它们之
......
35
0
0
2024-10-01
hi,我是程序员王也,一个资深Java开发工程师,平时十分热衷于技术副业变现和各种搞钱项目的程序员~,如果你也是,可以一起交流交流。今天我们继续来聊聊Java中的设计模式~第一部分:创建型模式创建型模式主要用于对象的创建过程,以解耦对象的创建和使用。以下是几种常见的创建型设计模式。1. 单例模式(Singleton)单例模式确保一个类只有一个实例,并提供一个
......
49
0
0
2024-09-26
可能有人很疑惑应用层 转发传输层?,为什么会有这样的需求啊???哈哈技术无所不用其极,由于一些场景下,对于一个服务器存在某一个内部网站中,但是对于这个服务器它没有访问外网的权限,虽然也可以申请端口访问外部指定的ip+端口,但是对于访问服务内部的TCP的时候我们就会发现忘记申请了!这个时候我们又要提交申请,又要等审批,然后开通端口,对于这个步骤不是一般的麻烦,
......
46
0
0
2024-09-26
前言距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下SpringBoot的完整操作,为了更加直接体现完整的过程我会使用层叠法来完成这个系列文章,会从最新版本idea社区版本的下载开始,直至我们代码开发的整个阶段,可以将接口完全搞出来,跨域后让前端的项目可以解析,完成整个开发的闭环操作,准备工作的孩子们可以持续的跟着看看,应该会给
......
48
0
0
2024-09-23
你好,这里是codetrend专栏“Spring6全攻略”。控制反转(Inversion of Control, IoC)是一种软件设计原则,它将传统的程序设计中的控制权从应用程序代码转移到框架或容器,从而实现了松耦合和更好的可维护性。在控制反转的概念中,应用程序的组件不再负责自己的创建和管理,而是交给外部容器来负责。这样做的好处是降低了组件之间的依赖关系,
......
46
0
0
2024-09-20
1、依赖的方式Gradle 中的依赖分别为直接依赖,项目依赖,本地 jar 依赖。在Gradle中,依赖管理是一个非常重要的部分,它允许你指定项目所需的各种库和模块。你的案例中提到了三种常见的依赖类型:项目依赖、本地JAR依赖和远程仓库的直接依赖。下面我将分别解释这三种依赖类型,并提供相应的配置方法。1.1 直接依赖(远程仓库依赖)直接依赖指的是从远程仓库(
......
49
0
0
2024-09-15
目录一、缓存的作用二、SpringBoot启用缓存三、SpringBoot可整合的缓存技术四、缓存使用案例——收集验证码实体类开发业务层开发工具类(生成验证码)控制层开发SpringBoot启动类测试五、变更缓存供应商Ehcache一、缓存的作用缓存缓存时一种介于数据永久存储介质与数据应用之间的数据临时存储介质使用缓存可以有效的减少低速数据读取过程的次数(例
......
32
0
0
2024-09-14
1 简介MyBatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的POJOs(Plain Ordinary Java Object,普通的 Java对象)
......
59
0
0
2024-09-05
一、锁的分类1.1 可重入锁、不可重入锁Java中提供的synchronized,ReentrantLock,ReentrantReadWriteLock都是可重入锁。重入:当前线程获取到A锁,在获取之后尝试再次获取A锁是可以直接拿到的。不可重入:当前线程获取到A锁,在获取之后尝试再次获取A锁,无法获取到的,因为A锁被当前线 程占用着,需要等待自己释放锁再获
......
68
0
0
2024-09-01
0、前言我们在开发中经常用到String对象【一个项目中各个地方都有它的身影,你和同事所写的代码,所使用的框架、库、工具包基本都会用到String】。作为使用率最高的对象,java对String做了不少优化,主要分为两方面,一个是使用方式的优化,一个是性能优化使用方式的优化 体现在:虽然String是对象,但可以不用new来创建,可以直接用""来创建Stri
......
79
0
0
2024-08-31
一、SpringBoot启动配置原理简述本内容直接查看分析SpringBoot启动配置原理,传送门:https://zyfcodes.blog.csdn.net/article/details/130903779因为本期的各种优化干预手段都依赖其基本原理,建议在使用前进行阅读。二、SpringBoot启动过程干预Spring Boot启动过程中我们可以实现以
......
74
0
0
2024-08-27
hi,我是程序员王也,一个资深Java开发工程师,平时十分热衷于技术副业变现和各种搞钱项目的程序员~,如果你也是,可以一起交流交流。今天我们来一起聊聊Java中遍历HashMap的5种方式。HashMap基础HashMap是Java中最常用的集合之一,它实现了Map接口并提供了键值对的映射。在Java中,HashMap是一个非同步的类,它的主要目的是为了快速
......
115
0
0
2024-08-21