自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孙小鸿的博客

学海无涯,进一寸有一寸的欢喜。

  • 博客(72)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java基础之 == 、equals和hashCode

== 、equals和hashCode知识点梳理。

2025-01-21 18:17:48 788

原创 Spring声明式事务

本文介绍Spring中的声明式事务。Spring声明式事务是通过AOP进行实现的。

2025-01-17 17:58:17 928

原创 静态代理 -> 动态代理 -> AOP

本文从 “在目标方法执行前后添加日志” 这一案例引出静态代理,进而引出动态代理,进而引出 AOP 技术。

2025-01-16 17:45:51 801

原创 Spring的三级缓存机制

主要介绍了Spring中通过三级缓存机制解决循环引用问题。其核心是三级缓存通过提前暴露对象引用,动态解决循环依赖,保证了单例 Bean 的完整性和可用性。

2025-01-16 16:10:32 984

原创 事务的特性和隔离级别

ACID特性确保了数据库事务的可靠性和数据的完整性。原子性保证了事务的不可分割性,一致性保证了事务执行前后数据库的完整性,隔离性保证了并发事务的正确性,持久性保证了事务提交后的永久性。这些特性共同作用,使得数据库在复杂的操作和并发环境下仍然能够保持数据的一致性和可靠性。

2025-01-13 12:09:33 863

原创 SpringBoot项目Jar包使用systemctl运行

SpringBoot项目打成jar包后,可以直接使用 java -jar xxx.jar 启动。但是为了方便启动和停止服务,通常我们会写两个脚本,分别是启动脚本 start.sh 和 停止脚本 shutdown.sh(这两个脚本内容我们下文会实现);再进一步的做法是可以把我们的服务添加成系统服务,使用systemctl 进行管理,就像使用 systemctl status firewalld.service 一样。

2024-12-19 00:20:34 1187

原创 一些Java小知识点 - SpringBoot配置优先级梳理

在某些SpringBoot项目中,有时会看到在配置文件中使用 ${xxx} 取值的情况,但是这些 xxx 变量在哪里进行设置呢?比如application.properties配置文件里面使用server.port=${PORT}指定程序的端口号

2024-12-18 00:06:33 935

原创 一些Java小知识点

Java中系统属性和环境变量;在开发过程中,有时会需要通过代码执行一些 命令行 指令,以下是一些示例代码,其中使用到了 hutool工具类;SpringBoot项目jar包在服务器上后台执行日志输出问题

2024-12-03 14:26:58 407

原创 Java代码实现生成证书吊销列表CRL

CRL (Certificate Revocation List) 证书吊销列表。是CA机构维护的一个已经被吊销的证书序列号列表,浏览器需要定时更新这个列表,浏览器在验证证书合法性的时候也会在证书吊销列表中查询此证书是否已经被吊销,如果被吊销了那这个证书也是不可信的。可以看出,这个列表随着被吊销证书的增加而增加,列表会越来越大,浏览器还需要定时更新,实时性也比较差。本篇博客实现如下功能:

2024-11-28 09:18:04 692

原创 Java代码实现数字信封

数字信封使用的是接收者的非对称密钥对。即:用接收者的公钥加密,且只能由接收者的私钥解密。其实现过程如下: (1)信息发送者发送信息时,首先生成一个共享的对称密钥,用该对称密钥加密要发送的明文,得到数据密文; (2)信息发送者用接收者的公钥加密此对称密钥,形成对称密钥密文; (3)信息发送者将(1)和(2)的结果结合在一起,形成数字信封,一并传给信息接收者。信息接收者接到数据后,使用自己的私钥解密对称密钥密文,得到共享的对称密钥;再用此对称密钥解密数据密文

2024-11-26 18:11:00 898

原创 SpringBoot之定时任务

论在单体项目,单个实例中的定时任务相关问题。开发中遇到的场景是:一个单体项目,就比如一个后台管理系统需要多个定时任务去做一些业务处理。分布式定时任务是接下来要详细讨论的问题。

2024-11-07 17:23:13 1701 1

原创 Java代码实现PKCS7填充

如果你也在做加解密相关的需求,比如调用国密标准0018接口的对称加密/解密接口。就会遇到需要自己填充数据原文为16字节的整数倍(因为SM4分组算法的加密数据长度必须是其密钥大小的整数倍,SM4密钥大小是128bit,即:16字节)

2024-11-01 11:18:36 773

原创 理解一个小知识点 - 网络速率

运营商说的100M的宽带,实际下载速率是多大。

2024-11-01 08:51:21 528

原创 SpringBoot最佳实践之 - 使用AOP记录操作日志

有一个后台管理系统,此系统具有不同角色的用户,比如管理员、操作员、审计员等。当这些角色的用户登录到系统中,以及其在系统中所触发的 操作。我都想记录操作日志。然后存储到数据库中。然后可以查询出来,显示到页面上。对于一个业务敏感的后台管理系统来说,就可以通过这里查看哪些用户操作了什么功能。操作的结果是成功还是失败,如果操作失败,失败的原因是什么

2024-10-29 11:19:49 1754

原创 浅谈Java加密体系

Java安全领域分为四个大部分:JCA(Java Cryptography Architecture, Java加密体系结构)、JCE(Java Cryptography Extension, Java加密扩展包)、JSSE(Java Secure Sockets Extension, Java安全套接字扩展包)和JAAS(Java Authentication and Authorization Service, Java认证和授权服务)

2024-10-25 14:43:31 232

原创 SpringBoot最佳实践之 - 项目中统一记录正常和异常日志

在特定需求背景下,针对项目中统一记录日志(包括正常和错误日志)需求的实现方式之一,并不是普适的记录日志的解决方案。所以阅读本篇博客的朋友,可以参考此篇博客中记录日志的方式,可能会对你有些许帮助和启发。

2024-10-25 14:39:14 1899

原创 logback-spring.xml文件的一些记录

在SpringBoot项目开发的过程中,一般都是使用Slf4j作为日志门面,使用logback作为日志实现。logback日志实现框架需要指定并配置一个配置文件:logback-spring.xml

2024-10-23 17:59:27 246

原创 计算机领域和通信领域中一些进制转换问题(kb和KB)

计算机领域和通信领域中,一些进制转换相关的问题。磁盘容量大小的问题。

2024-10-23 15:57:28 935

原创 Javac命令和Java命令的使用复习

基本功很重要。使用Java中的 javac 和 java 命令成功编译并运行一个程序,借此来复习下Java的基本使用方式。

2024-10-22 16:29:47 1529

原创 SpringMVC之 文件上传和下载

SpringMVC的文件上传和下载完整实现示例代码,可以在实际项目中使用。

2024-10-18 15:50:03 486

原创 Spring开发最佳实践之跨域处理

浏览器为了安全,默认会遵循同源策略。即:请求要去的服务器和当前项目(当前项目就理解成前端项目)所在的服务器必须是同一个源。如果不是,请求就会被拦截。那么什么是同一个源呢?什么不是同一个源呢?相同的源指的是 协议、域和端口号要完全相同,这三个地方有任何一处不一样,就是不同源。

2024-10-07 10:54:23 987

原创 浅聊前后端分离开发和前后端不分离开发模式

首先要知道,Spring MVC是Web开发领域的一个知名框架,可以开发基于请求-响应模式的Web应用。而Web开发的本质是遵循HTTP(Hyper Text Transfer Protocol: 超文本传输协议)协议【发请求,给响应】。所以作为服务端,只要能运行一个服务,此服务监听某个端口上由客户端发送过来的请求,然后获取请求数据,进行业务处理后,最后给客户端发送一个响应,就可以实现Web开发。所以理论上不使用Web开发框架(如Spring MVC)甚至不使用Servlet API,也可以实现Web开发。

2024-10-04 09:30:00 1750

原创 SpringBoot之Profile的两种使用方式

通常项目开发过程中,会经历多种环境转换,典型的如开发环境(dev)、测试环境(test)和生产环境(prod)。在这三种不同的环境下,连接数据库时使用的配置信息是不同的,即三个不同环境对应三个不同的数据库。 现在的需求是:当在不同的环境下,想通过修改配置文件来连接不同的数据库。比如在开发过程中启动项目时,想连接开发环境对应的数据库,可以在配置文件中指定 environment = dev。其他环境类似,此时就需要用到Spring为我们提供的Profile功能。

2024-09-30 10:25:46 2570

原创 Java文件拷贝的几种方式

此篇博客主要分为传统的阻塞IO(Blocking I/O)实现的文件拷贝和基于NIO(No-Blocking I/O)的FileChannel方式实现的文件拷贝。

2024-07-24 19:35:58 1261

原创 Spring中的事件监听器使用学习

Spring框架中的事件监听机制是一种设计模式,它允许你定义和触发事件,同时允许其他组件监听这些事件并在事件发生时作出响应。这种机制基于观察者模式,提供了一种松耦合的方式来实现组件间的通信。

2024-07-06 17:27:27 840 2

原创 浅谈Spring中的一些技术

在学习Spring或者SpringBoot原理时,心里要始终想着一件事情:只有把对象(也可以称之为组件、bean)放入到Spring的IOC容器中,才能使用Spring为我们提供的一系列强大功能

2024-07-05 22:56:08 835

原创 二、Java日志 - JUL

Java日志框架 - JDK自带的原生日志框架JUL (Java Util Logging)的简单使用方式。

2024-06-27 12:13:29 340

原创 死锁示例和检测方法

Java实现的一个死锁示例。

2024-02-06 15:59:26 442

原创 《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明》 - 第12章代码示例

最近在看《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明》这本书,书中有些代码示例是为了让读者理解作者表达的意思,但不是完整的代码示例,所以针对这些不完整的代码,自己动手写出完整的代码示例。(1)在看这本书的同学,可以拿我这里的示例代码做个参考,并欢迎提出意见和建议;(2)示例的标号,是和书中的代码示例标号相对应的。

2024-01-18 10:26:09 648

原创 2-《Java并发编程实战》(Java Concurrency in Practice) 代码示例

这是针对《Java并发编程实战》(Java Concurrency in Practice)一书中的示例代码进行扩展,并且进行验证的完整代码,具体背景可看这篇文章:

2024-01-13 12:02:03 535

原创 1-《Java并发编程实战》(Java Concurrency in Practice) 代码示例

(摘自书中的原话)在基于Web的服务中,命中计数器值的少量偏差或许是可以接受的,在某些情况下也确实如此。但如果该计数器被用来生产数值序列或者唯一的对象标识符,那么在多次调用中返回相同的值将导致严重的数据完整性问题。这种由于不恰当的执行时许而出现的不正确的结果是一种非常重要的情况,它有一个正式的名字:竞态条件(Race Condition)。

2024-01-13 11:00:31 1370 1

原创 项目引入Jar包的几种方式

项目中如何引入外部jar包,即外部jar包不能通过maven坐标的方式引入时,如何把一个外部jar包引入到项目中。有哪几种方式

2024-01-02 20:43:33 3371

原创 平台无关性和语言无关性的记录

JVM的平台无关性这一特性,此外也了解到了虚拟机的另外一种中立特性 --- 语言无关性

2023-12-30 14:59:45 1093

原创 关于JVM的垃圾回收GC的一些记录

JVM的垃圾回收GC的一些记录,包括JVM内存区域划分、GC作用的区域(堆内存)、如何确定一个对象是否可以被当成垃圾进行回收、垃圾回收算法有哪些、JVM相关参数等

2023-12-23 21:20:10 486

原创 并发和并行的区别

并发和并行的区别

2023-12-23 20:34:46 199

原创 关于Java和MySQL的时间使用问题

关于Java和MySQL的时间使用问题

2023-12-20 00:54:48 299

原创 JVM之堆学习

JVM之堆学习,以及几个JDK提供的工具学习,如jps,jmap,jconsole,jvisualvm

2023-12-14 23:23:14 291

原创 Java服务占用过高CPU排查思路

Java服务占用过高CPU排查思路

2023-12-12 20:41:33 523

原创 SpringBoot 配置文件使用@ @取值

SpringBoot 配置文件使用@ @取值问题

2023-12-05 15:10:29 256

原创 SpringBoot之自定义Starter

SpringBoot之自定义Starter。完整演示如何自定义SpringBoot的场景启动器startr

2023-12-04 00:54:51 386

webservice_pdf高清文档.zip

此文档是是WebService的PDF格式学习文档。适用于新手学习,文档清晰,完整。

2019-05-25

JAVA与SOAP_PDF高清版.zip

此文档是《Java与SOAP》pdf文档。文档完整清晰,适合新手学习。当然也适合想技术提高的技术爱好者学习。

2019-05-24

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

TA关注的人

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