java代码审计-某酒店管理系统
java代码审计-某酒店后台管理系统
目录java代码审计-某酒店后台管理系统1、简介2、文件上传漏洞3、CSRF漏洞4、存储型XSS
1、简介
文章只作研究学习,请勿非法渗透测试;
该系统是使用SpringMVC+Mysql搭建开发的一套中小型企业酒店后台管理系统;
这里只对源代码进行...[2024/5/8]
Sermant在异地多活场景下的实践Sermant在异地多活场景下的实践
本文分享自华为云社区《Sermant在异地多活场景下的实践》,作者:华为云开源。
Sermant社区在1.3.0和1.4.0版本相继推出了消息队列禁止消费插件和数据库禁写插件,分别用于解决异地多活场景下的故障切流和保护数据一致性问题。本文将对Sermant在异地多活场景下的实践进行剖析。
一、...[2024/5/8]
面试官:这就是你理解的Java多线程基础?
引言
现代的操作系统(Windows,Linux,Mac OS)等都可以同时打开多个软件(任务),这些软件在我们的感知上是同时运行的,例如我们可以一边浏览网页,一边听音乐。而CPU执行代码同一时间只能执行一条,但即使我们的电脑是单核CPU也可以同时运行多个任务,如下图所示,这是因为我们的 CP...[2024/5/6]
Java面试题:你知道Spring的IOC吗?那么,它为什么这么重要呢?Java面试题:你知道Spring的IOC吗?那么,它为什么这么重要呢?
Spring的IOC(控制反转)是一种设计模式,它允许开发者将对象的创建和管理交给Spring框架来完成。在Spring中,IOC允许开发者将对象依赖关系从代码中分离出来,从而使代码更加灵活、可重用和易于管理。
IoC 全称Inverse of Control(反向控制或控制反转)。
在类和...[2024/4/29]
有意思!一个关于 Spring 历史的在线小游戏
发现 Spring One 的官网上有个好玩的彩蛋,分享给大家!
进到Spring One的官网,可以看到右下角有个类似马里奥游戏中的金币图标。
点击该金币之后,会打开一个新的页面,进入下面这样一个名为:The History Of Spring 的在线小游戏
你可以使用上下左右的...[2024/4/29]
Spring Boot 编写 API 的 10条最佳实践
10 个最佳实践,让您像专业人士一样编写 Spring Boot API,并结合编码示例和解释:
1. RESTful API 设计原则:
清晰一致的资源命名:使用准确反映 API 管理的资源的名词(例如,/products、/users)。
@GetMapping("/product {...[2024/4/29]
面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?面试官:素有Java锁王称号的‘StampedLock’你知道吗?我:这什么鬼?
一、写在开头
我们在上一篇写ReentrantReadWriteLock读写锁的末尾留了一个小坑,那就是读写锁因为写锁的悲观性,会导致 “写饥饿”,这样一来会大大的降低读写效率,而今天我们就来将此坑填之!填坑工具为:StampedLock,一个素有Java锁王称号的同步类,也是在 java.u...[2024/4/29]
Understand Abstraction and InterfaceUnderstand Abstraction and Interface
Foreword
抽象和接口是Java中的两个关键字,也是两种最基本的优化软件项目手段。为什么说它们是一种优化项目的手段?
人分三六九等,不同等级的人,所接触的事和处理的事是不一样的。同理,项目也分大项目和中项目和小项目,大、中、小项目所承载的目标也是不一样的。
先说小项目,如果你使用Jav...[2024/4/24]
Beetl 源码解析:GroupTemplate 类
本文首发于公众号:腐烂的橘子
前言
Beetl 是一款 Java 模板引擎,在公司的项目中大量运用,它的作用是写通用代码时,有一些差异化的逻辑需要处理,这时可以把这些差异化的逻辑写在模板里,程序直接调用,实现了代码的低耦合。
有人问差异化的东西为什么不能通过配置实现?原因是配置只能将一些...[2024/4/23]
Java面试题:请谈谈Java中的volatile关键字?
在Java中,volatile关键字是一种特殊的修饰符,用于确保多线程环境下的变量可见性和顺序性。当一个变量被声明为volatile时,它可以确保以下两点:
内存可见性:当一个线程修改了一个volatile变量的值,其他线程会立即看到这个改变。这是因为volatile关键字会禁止CPU缓...[2024/4/23]
线程池的运行逻辑与你想象的不一样,它是池族中的异类
只要是 web 项目,程序都会直接或间接使用到线程池,它的使用是如此频繁,以至于像空气一样,大多数时候被我们无视了。但有时候,我们会相当然地认为线程池与其它对象池(如:数据库连接池)一样,要用的时候向池子索取,用完后归还给它即可。然后事实上,线程池独树一帜、鹤立鸡群,它与普通的对象池就是不同。本...[2024/4/23]
SnakeYaml反序列化分析
前言
SnakeYaml是Java中解析yaml的库,而yaml是一种人类可读的数据序列化语言,通常用于编写配置文件等。yaml真是到哪都有啊。
环境搭建
<dependency>
<groupId>org.yaml</groupId>
<ar...[2024/4/23]
Spring 源码阅读(二)IoC 容器初始化以及 BeanFactory 创建和 BeanDefinition 加载过程
相关代码提交记录:https: github.com/linweiwang pring-framework-5.3.33
IoC 容器三种启动方式
XML
JavaSE:
ApplicationContext context = new Cla PathXmlApplicationCo...[2024/4/23]
Trino418版本动态加载catalog不需要重启集群修改思路及实现2
原来没事的时候改了一个这样的功能,当时也没有仔细研究,后来也没继续弄。详细可以参考 https: www.cnblogs.com/liuzx8888/p/17635913.html
当时有1个问题:新增数据源需要每一个节点都去调取API注册,这...[2024/4/19]
JDBC数据库汇总Attack研究
前言
针对除Mysql的其它数据库的jdbc attack分析
H2 RCE
介绍
H2 是一个用 Java 开发的嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中。H2 主要有如下三个用途:
第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发...[2024/4/19]
【进阶篇】Java 实际开发中积累的几个小技巧(二)
目录前言六、自定义注解6.1定义注解6.2切面实现6.3业务使用七、抽象类和接口7.1隔离业务层与 ORM 层7.2隔离子系统的业务实现7.3选择对比文章小结
前言
笔者目前从事一线 Java 开发今年是第 3 个年头了,从 0-1 的 SaaS、PaaS 的项目做过,基于多租户的标准化开发...[2024/4/17]
setTimeout(fn, 0) // it works - JavaScript 事件循环 动画演示setTimeout(fn, 0) // it works - JavaScript 事件循环 动画演示
在前端代码中很经常看到使用 setTimeout(fn, 0),如下面代码所示,乍一看很多余,但是移除了可能会出现一些奇奇怪怪的问题。要解释这个就需要理解 事件循环(Event Loop),下面会通过一些例子和动画来辅助理解事件循环
setTimeout(() => {
调用一些...[2024/4/17]
SSM使用自定义ConditionalOnProperty实现按需加载spring bean
SSM使用自定义ConditionalOnProperty实现按需加载spring bean
背景: 公司提供的系统框架是SSM架构,SSM架构是没有springboot的ConditionalOnProperty注解的,而我们的系统是在很多区县部署的,每个区县会有一些定制化需求,其中有一个类...[2024/4/15]
C3P0反序列化链分析
前言
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用它的开源项目有Hibernate、Spring等。之前有接触到过,但是没有深入了解,像之前学二次反序列化时,WrapperConnectionPoolDataSource就是C3...[2024/4/15]
今天我们来聊一聊Java中的Semaphore
写在开头
在上几天写《基于AQS手写一个同步器》时,很多同学留言说里面提到的Semaphore,讲得太笼统了,今天趁着周末有空,咱们就一起详细的学习和梳理一把 Semaphore。
什么是Semaphore?
在前面我们讲过的synchronized 和 ReentrantLock 都是一次只...[2024/4/15]
深入理解并发和并行
1 并发与并行
为什么操作系统上可以同时运行多个程序而用户感觉不出来?
因为操作系统营造出了可以同时运行多个程序的假象,通过调度进程以及快速切换CPU上下文,每个进程执行一会就停下来,切换到下个被调度到的进程上,这种切换速度非常快,人无法感知到,从而产生了多个任务同时运行的错觉。
并发(co...[2024/4/15]
面试官:实战中用过CountDownLatch吗?详细说一说,我:啊这
写在开头
在很多的面经中都看到过提问 CountDownLatch 的问题,正好我们最近也在梳理学习AQS(抽象队列同步器),而CountDownLatch又是其中典型的代表,我们今天就继续来学一下这个同步工具类!
CountDownLatch有何作用?
我们知道AQS是专属于构造锁和同步器的...[2024/4/15]
RestTemplate进行https请求时适配信任证书
转载请注明出处:
1.http协议请求
使用RestTemplate进行http协议的请求时,不需要考虑证书验证相关问题,以下为使用RestTemplate直接使用的代码示例:
import org.springframework.web.client.RestTemplate;
...[2024/4/15]
Kryo反序列化链分析
前言
Kryo是一个快速序列化/反序列化工具,依赖于字节码生成机制(底层使用了ASM库),因此在序列化速度上有一定的优势,但正因如此,其使用也只能限制在基于JVM的语言上。
Kryo序列化出的结果,是其自定义的,独有的一种格式。由于其序列化出的结果是二进制的,也即byte[],因此像redis...[2024/4/15]
实战指南:使用 xUnit.DependencyInjection 在单元测试中实现依赖注入【完整教程】
引言
上一篇我们创建了一个Sample.Api项目和Sample.Repository,并且带大家熟悉了一下Moq的概念,这一章我们来实战一下在xUnit项目使用依赖注入。
Xunit.DependencyInjection
Xunit.DependencyInjection 是一个用于 xU...[2024/4/15]
美团一面,面试官让介绍AQS原理并手写一个同步器,直接凉了
写在开头
今天在牛客上看到了一个帖子,一个网友吐槽美团一面上来就让手撕同步器,没整出来,结果面试直接凉凉。
就此联想到一周前写的一篇关于AQS知识点解析的博文,当时也曾埋下伏笔说后面会根据AQS的原理实现一个自定义的同步器,那今天就来把这个坑给填上哈。
常用的AQS架构同步器类
自定义同步...[2024/4/11]
keycloak~RequiredActionProvider的使用
使用场景
RequiredActionProvider,它是在认证过程中,需要当前登录的用户执行个性化的动作;当用户符合条件,就被执行RequiredActionProvider对作,当RequiredActionProvider没有正常提交(context.succe ())之前,当前用户仍然...[2024/4/11]
京东一面:如何在SpringBoot启动时执行特定代码?有哪些方式?
引言
Spring Boot 提供了许多便捷的功能和特性,使得开发者可以更加轻松地构建强大、高效的应用程序。然而,在应用程序启动时执行一些初始化操作是至关重要的,它可以确保应用程序在启动后处于预期的状态,从而提供更好的用户体验和稳定性。
在应用程序启动时执行初始化操作有许多好处。首先,它可以确...[2024/4/11]
ThreadLocal真会内存泄漏?ThreadLocal真会内存泄漏?
前言
在讨论ThreadLocal存在内存泄漏问题之前,需要先了解下面几个知识点:
什么是内存泄漏?什么是ThreadLocal?为什么需要ThreadLocal?
数据一致性问题如何解决数据一致性问题?
当我们了解了上面的知识点以后,会带大家一起去了解真相。包括下面几个知识点:
为什...[2024/4/11]
新手真的别再用过时的jenkins freestyle了,10分钟教你搞定快速编写jenksinfile,快速离线调试
Pipeline是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。它通过Domain Specific Language(DSL)syntax定义Pipeline As Code并且实现持续交付的目的。
Pip...[2024/4/10]
详解Java Chassis 3与Spring Cloud的互操作
本文分享自华为云社区《Java Cha is 3技术解密:与Spring Cloud的互操作》,作者: liubao68。
Java Cha is 3一个很重要的设计原则:利用架构的韧性设计来解决兼容性问题。
比如通过引入微服务网关,来解决不同语言、不同框架、遗留系统之间的互操作问题。 ...[2024/4/10]
java switch 自定义表格的渲染和编辑示例
目录正常使用表格自定义表格样式自定义Model渲染器代码:编辑器代码:
不管是什么编程语言,都已经内置好很多典型的前端组件给你使用,使用这些默认组件基本能完成80%的工作了,但是还是有些独特的需求完成不了,比如点击一个按钮,按钮按下要出现五彩斑斓的背景阴影,这种就需要对组件进行自定义了。
...[2024/4/10]
美团一面:说说synchronized的实现原理?问麻了。。。。
引言
在现代软件开发领域,多线程并发编程已经成为提高系统性能、提升用户体验的重要手段。然而,多线程环境下的数据同步与资源共享问题也随之而来,处理不当可能导致数据不一致、死锁等各种并发问题。为此,Java语言提供了一种内置的同步机制——synchronized关键字,它能够有效地解决并发控制的问题...[2024/4/8]
System.gc 之后到底发生了什么 ?
本文基于 OpenJDK17 进行讨论
在 JDK NIO 针对堆外内存的分配场景中,我们经常会看到 System.gc 的身影,比如当我们通过 FileChannel#map 对文件进行内存映射的时候,如果 JVM 进程虚拟内存空间中的虚拟内存不足,JVM 在 native 层就会抛出 ...[2024/4/8]
Array and Set work process
目录Array work principle分析Array操作步骤数readfindinsertdeleteSet work principle分析Set操作步骤数readfindinsertdeleteJava Collection Cla
从单词来看,
Array 很好理解一批一批...[2024/4/8]
微服务集成Spring Cloud Zipkin实现链路追踪并集成Dubbo微服务集成Spring Cloud Zipkin实现链路追踪并集成Dubbo
1、什么是ZipKin
Zipkin 是一个根据 Google 发表的论文“ Dapper” 进行开源实现的分布式跟踪系统。 Dapper是Google 公司内部的分布式追踪系统,用于生产环境中的系统分布式跟踪。 Google在其论文中对此进行了解释,他们“构建了Dapper,以向Google开...[2024/4/8]
利用BCEL字节码构造内存马
前言
BCEL加载类有一个特点,只可以加载jdk原生的类,其它框架的类,都会报错Cla notFound的错误。但是,BCEL的Cla Loader在8u252后被删除了
注入流程分析
获取context
一种比较通用的获取context的方式
WebApplicationContext c...[2024/4/8]
提高生产力!这10个Lambda表达式必须掌握,开发效率嘎嘎上升!
在Java8及更高版本中,Lambda表达式的引入极大地提升了编程的简洁性和效率。本文将围绕十个关键场景,展示Lambda如何助力提升开发效率,让代码更加精炼且易于理解。
集合遍历
传统的for-each循环对集合进行遍历虽然直观,但在处理大量数据时显得冗长。例如:
List<Stri...[2024/4/3]
一文搞懂Java的工具类和API
1.工具类(Utility Cla )
在Java中,工具类通常包含一系列静态方法,用于执行常见的任务,这些任务可能不直接关联到特定的业务逻辑,而是用于处理一些基础的数据转换、字符串操作、文件操作等。工具类通常被设计为无状态的,即不包含任何实例变量,并且所有的方法都是静态的。
例如,下面是一个...[2024/4/3]
判断字符串是否唯一 - 怀念-2018
算法1:用于判断一个字符串的字符是否都是唯一的,即没有重复的字符。
解决思路:首先将输入的字符串转换为字符数组,然后对字符数组进行排序。之后,使用一个while循环遍历排序后的字符数组,如果发现有任何两个相邻的字符相同,则返回false,表示字符串中有重复的字符。如果循环结束后都没有发现相邻的...[2024/4/3]
基于Java NIO 写的一个简单版 Netty 服务端
A Simple Netty Based On JAVA NIO
基于Java NIO 写的一个简单版 Netty 服务端
前置知识
NIO
NIO 一般指 同步非阻塞 IO,同样用于**描述程序访问数据方式 **的还有BIO(同步阻塞)、AIO(异步非阻塞)
同步异步指获取结果的方式,同...[2024/4/3]
简直了,被“Java并发锁”问题追问到自闭...
故事
地铁上,小帅双目空洞地望着窗外...绝望,发自内心地感到绝望...
距离失业已经过去两个月了,这是小帅接到的第四次面试邀请。“回去等通知吧...”,简简单单的六个字,把小帅的心再次打入了冰窖。
上次“【ThreadLocal问出花】”,小帅其实也有吸取教训得,这次对于多线程的问题还是做...[2024/4/3]
SpringBoot多环境配置
写在前面
在实际项目的开发过程中,我们程序往往需要在不同环境中运行。例如:开发环境、测试环境和生产环境。
每个环境中的配置参数可能都会有所不同,例如数据库连接信息、文件服务器等等。
Spring Boot 提供了非常方便的方式来管理这些不同环境的配置。
一、Spring Profile 介绍...[2024/4/1]
.net和java串口通讯压力测试对比, java完胜
最近由于工作要求,需要对一个串口通讯设备进行压力测试,要求连续持续对串口设备发送指令,无间隔,测试设备是否会死机。
要求做到毫秒级,测试第三方的工具,基本上都无法达到毫秒级,最少的也是10毫秒。
于是就自己写代码测试。通过.net写,发现最少能达到1毫秒,但是有遗漏,看日志如下
2024-...[2024/4/1]
SPEL表达式注入分析
环境依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expre ...[2024/3/29]
如何在Java中读取超过内存大小的文件
读取文件内容,然后进行处理,在Java中我们通常利用 Files 类中的方法,将可以文件内容加载到内存,并流顺利地进行处理。但是,在一些场景下,我们需要处理的文件可能比我们机器所拥有的内存要大。此时,我们则需要采用另一种策略:部分读取它,并具有其他结构来仅编译所需的数据。
接下来,我们就来说说...[2024/3/29]
springboot3接入nacos
参考:https: blog.csdn.net/qinguan111/article/detail 132877842(连接不上nacos)
https: verytoolz.com/yaml-formatter.html(yaml格式工具)
好吧,从昨天下午到今天快上午一直在被接入naco...[2024/3/29]
【毕业设计】基于springboot的大学生综合素质测评管理系统
前言
【毕业设计】大学生综测管理系统
??个人主页:@MIKE笔记
??文章专栏:毕业设计源码合集
?联系博主: wx:mikenote
毕设目录
项目名
文章地址
??下载
1、基于springboot的大学生综合素质测评管理系统
http: t.csdn.cn...[2024/3/29]
SpringBoot 常用注解总结
核心注解
1. @SpringBootApplication
主要用于开启自动配置,它也是一个组合注解,主要组合了 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan
2. @EnableAutoConfigurati...[2024/3/29]
Spring Boot 工程开发常见问题解决方案,日常开发全覆盖
本文是 SpringBoot 开发的干货集中营,涵盖了日常开发中遇到的诸多问题,通篇着重讲解如何快速解决问题,部分重点问题会讲解原理,以及为什么要这样做。便于大家快速处理实践中经常遇到的小问题,既方便自己也方便他人,老鸟和新手皆适合,值得收藏 ??
1. 哪里可以搜索依赖包的 Maven 坐标和...[2024/3/29]