自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring 事务嵌套及传播行为:深入理解与最佳实践

事务嵌套是指在一个事务中调用其他带事务的方法。当我们在一个事务中调用另一个有事务控制的方法时,Spring 会根据方法上配置的事务传播行为来决定如何处理这些事务。这种嵌套事务的管理机制,实际上是通过事务的。

2025-02-18 11:30:00 78

原创 Spring 事务管理:深入理解与实战分析

Spring 提供了强大的事务管理功能,支持声明式事务和编程式事务,极大简化了复杂应用中事务管理的代码,并为开发者提供了灵活、可扩展的解决方案。Spring 提供的事务管理与 MySQL 数据库可以无缝结合,利用 MySQL 提供的事务隔离和提交控制机制来确保数据的一致性。Spring 的事务管理是建立在 ACID 特性之上的。通过 Spring 提供的事务管理框架,我们可以以声明式或编程式的方式控制事务。在编程式事务管理中,我们手动控制事务的开始、提交和回滚,提供了更多的灵活性,但增加了代码复杂度。

2025-02-17 11:30:00 20

原创 Spring 如何解决循环依赖问题:深度解析与扩展

在多级循环依赖的情况下(如 A 依赖 B,B 依赖 C,C 依赖 A),Spring 仍然能够通过三级缓存机制顺利解决。解决了循环依赖问题,避免了 Bean 之间的死锁,并确保依赖注入的完整性和正确性。对于循环依赖问题,还可以采用代理模式(例如 AOP 动态代理)来解决,但代理模式通常会导致更复杂的设计和额外的性能开销,因此不推荐作为循环依赖的首选解决方案。通过三级缓存机制,Spring 既可以在解决循环依赖时确保 Bean 的完整性,又能通过代理对象的方式避免 Bean 实例的多次创建。

2025-02-16 11:00:00 51

原创 @Autowired vs @Resource

Spring 在执行自动装配时,会扫描容器中的 Bean,将目标 Bean 和依赖 Bean 进行匹配并注入。在匹配过程中,Spring 会利用反射机制检查类中的字段或方法,查看是否存在注解标注的自动装配需求,并根据注解的配置决定装配的方式。是 Spring 提供的两种注解,主要用于实现自动装配(自动注入),它们的使用场景与配置方式非常接近,但在一些细节上存在差异。:推荐的注入方式,尤其在有多个依赖的情况下,通过构造方法来注入 Bean,有助于增强代码的可测试性。一起使用,简化冲突 Bean 的选择。

2025-02-14 12:00:00 24

原创 Spring AOP 应用场景分析:提升开发效率与解耦的利器

Spring AOP 提供了一种清晰且高效的方式来解决项目中的横切关注点问题,帮助我们减少代码重复,提高代码的可维护性和可扩展性。通过这种方式,我们将权限验证逻辑统一集中到 AOP 切面中,避免了在每个方法中都编写权限验证代码,实现了安全控制的集中管理。通过这种方式,我们无需在每个方法中添加性能监控代码,而是通过 AOP 自动进行方法执行时间的记录,帮助我们快速识别性能瓶颈。:通过 Spring AOP 实现统一的权限控制,在目标方法执行前进行权限验证,将权限控制与业务逻辑分离。

2025-02-13 15:15:01 25

原创 Spring AOP 进阶与扩展:深度解析 AOP 的高级用法与扩展机制

Spring AOP 默认是基于动态代理实现的,但 AspectJ 提供了更加强大、灵活的织入功能,可以通过编译时或类加载时织入增强。)是 AOP 中最强大的通知类型,它不仅可以在目标方法执行前后插入逻辑,还可以决定是否执行目标方法,并能够修改方法的返回值或参数。:环绕通知允许我们在方法执行前后插入逻辑,但执行时间较长的环绕通知可能会导致性能下降,因此应该避免在环绕通知中进行复杂的计算。以下是一些常见的扩展方法。:代理对象的创建是有开销的,在性能敏感的场景中,可以考虑使用手动代理来减少代理对象的创建次数。

2025-02-08 11:30:00 682

原创 Spring AOP 原理与实现

在深入理解 Spring AOP 的基础概念和用法后,接下来我们将探讨其背后的实现原理和底层机制。通过理解 Spring AOP 的原理与实现,你将能更好地掌握其工作方式,并能在实际开发中灵活运用。AOP(Aspect-Oriented Programming,面向切面编程) 的核心目标是将跨越多个模块的关注点(横切关注点)提取出来并进行统一管理。通常这些横切关注点不关心业务逻辑的实现,但又需要多次应用到不同的业务场景中,比如:Spring AOP 通过切面(Aspect)将这些关注点分离出来,进而实现代码

2025-02-06 13:51:32 37

原创 Spring AOP 基础使用

在软件开发中,横切关注点(Cross-Cutting Concerns)是常见的需求,例如日志记录、事务管理、安全校验等。Spring AOP(面向切面编程)允许开发者将这些关注点抽象成切面,并通过动态代理机制将其“织入”到核心业务逻辑中,从而实现更高效的代码解耦和重用。本文将深入探讨如何使用实现基础的切面功能,并介绍常见的配置方式,包括基于 XML 配置和基于注解的方式,帮助你在实际开发中快速上手。Spring AOP 基于,它通过代理对象实现对目标对象的增强。

2025-01-30 10:00:00 17

原创 Spring Bean实例化过程

Spring Bean 的生命周期管理是 Spring IOC 的核心功能之一。Bean 生命周期从实例化、依赖注入、初始化、销毁等各个阶段的源码分析,有助于深入理解 Spring 容器的工作原理,特别是在复杂应用中的应用和定制化。本文将详细分析 Spring Bean 的生命周期,并通过源码分析每个阶段的执行流程,包括实例化过程、属性填充过程、初始化过程、销毁过程等,帮助大家更好地理解 Spring 如何管理 Bean。Spring Bean 的生命周期可以分为以下几个主要阶段:在这些阶段,Spring

2025-01-28 12:00:00 98

原创 Spring IOC 源码解析

在 Spring 中,IOC(Inversion of Control)容器管理着 Bean 的整个生命周期。了解这些生命周期阶段和相应的源码分析,能够帮助我们深入理解 Spring 的核心机制,以及如何在不同阶段增加扩展点以优化和自定义我们的应用。Spring Bean 的生命周期通常可以划分为以下几个阶段:在每个阶段,Spring 提供了多个扩展点,允许开发者在不同的生命周期阶段插入自定义的逻辑,这为开发者提供了高度的灵活性。在 Spring 中,Bean 实例化的核心工作由 的 方法完成。实例化过

2025-01-27 11:00:00 62

原创 Spring AOP 入门:核心概念与实际应用

在现代软件开发中,代码中会经常出现一些“横切关注点”(Cross-Cutting Concerns),例如日志记录、事务管理、安全校验等。提供了一种优雅的方式——面向切面编程(Aspect-Oriented Programming),可以将横切关注点抽离出来,从而简化核心业务逻辑代码。AOP 的核心思想是将横切关注点抽象成“切面”(Aspect),并通过动态代理技术将其织入到业务逻辑中。这些功能都属于横切关注点,与核心业务逻辑无关,但又是不可或缺的部分。,即面向切面编程,是一种编程范式,它通过。

2025-01-27 10:00:00 22

原创 Spring IOC 高级用法

Scope。

2025-01-22 10:30:00 20

原创 Spring IOC 核心原理

Spring IOC 通过依赖注入(DI)降低对象间的耦合度,将依赖关系交由容器管理,从而实现松耦合设计。Spring IOC 容器负责管理应用程序中对象的生命周期和依赖关系,是实现控制反转的核心。:Spring 通过三级缓存机制解决单例循环依赖,将早期对象暴露给依赖方,避免死循环。:多例 Bean 依赖单例 Bean,或需要每次获取新的实例。:开发中,多个模块之间依赖关系复杂,导致耦合度高,维护困难。是其扩展,支持国际化、事件发布等功能,适合企业级应用。构造器注入:强制依赖,适合必需属性。

2025-01-20 11:00:00 19

原创 Spring IOC 入门

IOC(控制反转)是一种通过框架容器来管理对象生命周期和依赖关系的编程思想。在传统开发模式中,对象的创建和依赖注入通常由代码显式控制,而 IOC 将这些责任交由容器管理,开发者只需专注于业务逻辑。:将对象的控制权从应用程序转移到 IOC 容器,由容器负责创建和管理对象。降低代码耦合度,便于模块化开发。提高代码的可维护性和可测试性。支持松耦合的架构设计。

2025-01-16 14:11:12 65

原创 初识Spring

Spring框架是一个开源的Java企业级开发框架,旨在简化企业级应用程序的开发,提供一种全面而灵活的编程模型。它最初是为了解决企业级应用中复杂的开发问题而设计的,尤其是在构建大型、分布式系统时。

2025-01-16 13:48:40 53

原创 基于AES加密解密工具类

AES加密解密工具类

2022-07-19 17:06:48 352

原创 Atomicstampedreference解决ABA问题

我们都知道CAS操作是一个原子操作,但是再多线程环境下就会产生ABA问题。所以Java提供了这个类来解决ABA问题import java.util.concurrent.atomic.AtomicReference;/** * MyTest. * * @author 2021/7/21 9:04 下午 */class User{ private String name; private Integer score;//积分 public User(String name, I

2021-07-21 22:07:29 542

原创 使用Docker发布SpringBoot项目

环境准备,一台安装了Docker的服务器开发工具:IDEA、jdk8步骤一:使用IDEA新建一个Springboot项目,编写自己的

2021-06-04 13:37:05 228

原创 关于类(Class)的工具类方法

import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.net.JarURLConnection;import java.net.URL;import java.net.URLDecoder;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import java.uti.

2020-10-13 10:16:05 543

原创 Ubuntu16.04 安装k8s 国内环境

这两天小编在研究关于运维的一些事情,现在火的不行的docker+k8s。今天踩踩坑。环境 virtualBox Ubuntu16.04 虚拟机的CPU个数要大于2 内存分配在2G以上首先我们来安装docker (记得关闭防火墙 )第一步 卸载旧版本docker (新机器就不需要执行了)sudo apt-get remove docker docker-engine docker-ce docker.io第二步更新aptsudo apt-get update第三步安装以下包以使..

2020-06-05 10:54:56 1542

转载 解决Feign HTTPS远程调用绕过SSL证书验证

最近小编在做一个项目的时候,使用了feginClient作为一个http请求工具,用来调用第三方接口,但是由于第三方接口是https开头,导致我调用的时候,程序需要ssl认证,在网上搜了很多文章也没有找到解决办法,最终在有一位作者给出了解决办法,绕过https认证。下面给出解决方案源文档链接:https://blog.youkuaiyun.com/Chipslyc/article/details/98851831,贴出代码import feign.Client;import org.springfram

2020-06-02 15:56:09 5245 3

原创 springCloud远程调用发生feign.FeignException: status 404 reading异常解决方案

这几天小编在研究springCloud微服务架构,在这个过程过碰到了一个这样的问题,下面给出我的解决方案这是web层这是我的服务调用方这是我的服务提供方这是请求结果先简单描述一下问题出现的原因,之前在一篇博客上看到服务调用方的调用方法和服务提供方的方法名,参数要保持一致。然后我按照他说的,写了一遍,就出现了feign.FeignException: status 4...

2020-03-04 16:45:01 6039

原创 Java 使用list集合一次向数据库插入十几万条数据

private void insert(List<Object> list) { int listSize = list.size(); int toIndex = 2000; for (int i = 0; i < list.size(); i += 2000) { if (i + 2000 > listSize) { ...

2019-10-08 17:30:52 4601

原创 使用Nginx自带的http协议实现视频点播

这几天小编想使用Nginx搭建视频流服务器,网上找来找去很多都是基于rtmp协议,依赖了本多什么module的依赖,浏览器好像不支持直接访问这个rtmp协议,于是小编找了好多帖子也没有一个完整,于是我就整合了网上的一些帖子,给大家分享一下开发环境:virtualBox、Ubuntu14.X版本nginx-1.15.9.tar、openssl-1.1.0g.tar、pcre-8.42.tar...

2019-03-20 17:16:11 8056 1

原创 关闭Tomcat8,自定义线程报内存溢出

开发环境jdk8、tomcat8、IDEA使用了ThreadPoolExecutor线程池,创建了几条线程,在我手动结束tomcat的时候,出现一下异常04-Mar-2019 16:43:15.036 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesTh...

2019-03-04 17:14:48 611

原创 SFTP链接远程服务器

import java.util.Properties;import com.cloudibpm.core.util.SystemConfig;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchE...

2018-07-28 17:21:29 1234

原创 使用docker-java远程管理docker精进版(二)

在前一篇小编介绍了Ubuntu下安装docker如何进行端口绑定,阐述了直接这样绑定端口容易造成入侵问题,今天我们就来使用认证书来解决这个问题。 现在Docker Java API默认的连接方式就是基于签名证书认证的。如果我们的Docker没有签名认证过,Docker Java是无法连接到Docker的,也就是说,要想连Docker,必须做签名认证。证书的生成详细信息。移步官网Pr...

2018-07-05 11:28:04 9178 5

原创 使用docker-java远程管理docker精进版(一)

在前一篇文章中,小编采用了docker toolbox方法来安装了docker,并使用Java程序来链接docker,今天我将采用标准的VirtualBox来链接docker,学习类容主要是制作认证书和端口暴露。环境配置:虚拟机:VirtualBox5.2.12,网络链接方式我们选择桥接方式(这样虚拟机和主机之间保持网络互通)操作系统:Ubuntu-server16.4(操作系统版本必须在16以上...

2018-07-02 16:06:50 2441

原创 使用Docekr-Java远程管理docker.

前些天在小编在自己的VirtualBox安装了Docker,一直是采用dos命令对docker进行操作。于是打算了采用Java程序来管理docker,无奈,在网上找了半天也没有关于这样的贴子,于是自己琢磨的半天,终于是成功了。现在和大家一起分享。目前我是采用的是docker toolbox,下面是链接,后续我将采用VirtualBox虚拟机来链接,原因我会在文章结尾说明。https://get.d...

2018-06-30 15:39:38 2529

原创 JDK的安装步骤

第一步:在浏览器中www.sun.com(会直接跳转到www.oracle.com),找到自己需要下载的jdk版本,下载完毕后,双击安装包。第二步:单击下一步第三选择安装路径...

2018-06-08 17:18:12 300

设计模式实际应用场景demo案例资源

文件中包含了适配器、命令、工厂、观察者、单例、策略、装饰者等常见的设计模式的应用场景。在日常开发中可以通过依葫芦画瓢的方式来选择合理的设计模式应用到实际的开发中

2025-02-06

FileZilla下载安装

FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。 可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具,而FileZilla Server则是一个小巧并且可靠的支持FTP&SFTP的FTP服务器软件。

2025-02-05

远程ssh远程控制终端工具

SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT的SSH协议支持DES,3DES和RC4密码和密码与RSA鉴别。在今后的工作和学习中会经常的用到用来连接linux服务器。

2025-02-05

空空如也

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

TA关注的人

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