![](https://img-blog.csdnimg.cn/8edadc96f1764d3091ca42cb67a250fb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
文章平均质量分 87
Spring是一个开源容器框架,集成了各类型的工具。各类型的功能被抽象成一个个的 Bean,这样就可以实现各种功能的管理,包括动态加载和切面编程。
鱼找水需要时间
千里之行,积于跬步;万里之船,成于罗盘
展开
-
java开发人员最常犯的10种错误
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。本文介绍了开发人员常犯的十种错误原创 2023-12-30 07:00:00 · 791 阅读 · 0 评论 -
如何衡量程序运行的效率
计算机通过一个个程序去执行计算任务,也就是对输入数据进行加工处理,并最终得到结果的过程。每个程序都是由代码构成的。可见,编写代码的核心就是要完成计算。但对于同一个计算任务,不同计算方法得到结果的过程复杂程度是不一样的,这对你实际的任务处理效率就有了非常大的影响。原创 2023-12-29 07:45:00 · 2044 阅读 · 3 评论 -
由Long类型引发的生产事故
本次问题主要是后端返回的订单编号是Long类型,在特定数值下会造成和前端拿到的orderId不一致,通过orderId再去更新时导致页面上显示的数据没有发生变化,有可能拿着不对的orderId更新到了其他不相关的数据。修改后采用"String"类型传递 orderId可以避免这个问题。实际开发中操作订单状态应该是通过来操作订单表,可以是自增id 雪花id uuid等分布式唯一id,orderId是单独的一列 非主键存储,尽量避免通过orderId操作订单数据。原创 2023-10-04 12:24:56 · 266 阅读 · 4 评论 -
documents4j 文档转换
documents4j 是一个 Java 库,可以将文档转换为另一种文档格式。原创 2023-08-23 20:15:00 · 553 阅读 · 16 评论 -
SpringBoot + MyBatis-Plus构建树形结构的几种方式
树形结构,是指:数据元素之间的关系像一颗树的数据结构。由树根延伸出多个树杈原创 2023-08-20 21:53:52 · 1941 阅读 · 7 评论 -
Spring中循环依赖解决方案
循环依赖是Spring框架中常见的问题之一,当两个或多个类相互引用对方时,就会出现循环依赖的情况。这种情况下,Spring框架无法确定哪个类应该先实例化和初始化,从而导致异常。常见的解决方法有:构造函数注入、setter方法注入、静态工厂方法注入以及使用第三方库等。原创 2023-08-16 21:34:48 · 440 阅读 · 14 评论 -
Spring6 AOT 提前编译
AOT 编译能直接将源代码转化为机器码,内存占用低,启动速度快,可以无需 runtime 运行,直接将 runtime 静态链接至最终的程序中,但是无运行时性能加成,不能根据程序运行情况做进一步的优化,AOT 缺点就是在程序运行前编译会使程序安装的时间增加。原创 2023-06-24 15:18:43 · 619 阅读 · 32 评论 -
Spring6 数据校验 Validation
spring validation允许通过注解的方式来定义对象校验规则,把校验和业务逻辑分离开,让代码编写更加方便。Spring Validation其实就是对Hibernate Validator进一步的封装,方便在Spring中使用。原创 2023-06-22 13:11:31 · 1954 阅读 · 19 评论 -
Spring6 i18n国际化
国际化也称作 i18n ,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国际化是通过配置文件来实现的,假设要支撑两种语言,那么就需要两个版本的配置文件。原创 2023-06-20 21:31:18 · 970 阅读 · 16 评论 -
Spring6 JdbcTemplate和事务
数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。原创 2023-06-17 10:54:38 · 3830 阅读 · 48 评论 -
Spring Resources资源操作
Spring 的 Resource 接口位于 org.springframework.core.io 中。 旨在成为一个更强大的接口,用于抽象对低级资源的访问。原创 2023-06-15 21:26:00 · 3287 阅读 · 36 评论 -
Spring6 面向切面(AOP)
AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,以通过预编译方式和运行期动态代理方式实现,在不修改源代码的情况下,给程序动态统一添加额外功能的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2023-06-14 21:07:42 · 677 阅读 · 33 评论 -
Spring6-IoC(Inversion of Control)控制反转和DI(Dependency Injection)依赖注入,手动实现IOC
在 Spring 中,IoC(Inversion of Control)控制反转是一种新的 Java 编程模式,它将对象的创建和使用分离开来,由容器负责创建和管理对象,而不再由程序员直接创建和管理对象。DI(Dependency Injection)依赖注入是 IoC 的一种实现方式,它允许将对象之间的依赖关系从代码中解耦出来,使得代码更加灵活、可测试、可维护。原创 2023-06-11 22:11:01 · 3436 阅读 · 57 评论 -
Spring IOC基于XML和注解管理Bean(二)
IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。原创 2023-06-11 15:45:14 · 1670 阅读 · 22 评论 -
Spring IOC基于XML和注解管理Bean(一)
IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。原创 2023-06-11 15:32:15 · 1761 阅读 · 29 评论 -
Spring6入门 + Log4j2
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Apache Log4j2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。原创 2023-05-30 20:18:55 · 1198 阅读 · 25 评论 -
Java Spring概述
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。原创 2023-05-29 20:19:35 · 3519 阅读 · 22 评论 -
Java中的反射(通过反射获取类的结构、invoke方法、获取注解)
Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息原创 2023-05-07 22:38:48 · 2489 阅读 · 33 评论 -
Java中的Reflection(反射)、暴力反射
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在运行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。原创 2023-05-03 10:42:02 · 2076 阅读 · 43 评论 -
springboot 静态方法中使用@Autowired注入配置和Bean
Spring 框架作为 Java 开发中最流行的框架之一,其核心特性之一就是依赖注入(Dependency Injection,DI)。 在Spring中,依赖注入是通过 IOC 容器(Inversion of Control,控制反转)来实现的。原创 2021-09-17 16:35:38 · 2349 阅读 · 0 评论 -
IDEA配置热部署Devtools(微服务开发必备)
spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。原创 2022-01-08 18:47:55 · 1153 阅读 · 0 评论 -
RestTemplate用法
RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在 RestTemplate 中.原创 2022-01-08 19:55:24 · 507 阅读 · 0 评论 -
SpringBoot-Data-Redis快速使用
Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库原创 2021-04-26 22:06:15 · 1236 阅读 · 0 评论 -
Java中的异常Exception和捕获,自定义异常
异常 :指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。原创 2023-04-16 00:20:38 · 1200 阅读 · 30 评论 -
Java中的注解,自定义注解
注解(Annotation)是从JDK5.0开始引入,以“@注解名”在代码中存在。Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值,这些信息被保存在 Annotation 的 “name=value” 对中。注解可以在类编译、运行时进行加载,体现不同的功能。原创 2023-04-15 19:31:43 · 1188 阅读 · 14 评论 -
数据库链接池HikariCP、Druid
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。原创 2023-03-14 23:02:41 · 4342 阅读 · 42 评论 -
Sa-Token实现分布式登录鉴权(Redis集成 前后端分离)
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。原创 2023-02-12 15:18:10 · 6528 阅读 · 32 评论 -
Curator实现分布式锁(可重入 不可重入 读写 联锁 信号量 栅栏 计数器)
Curator实现分布式锁(可重入 不可重入 读写 联锁 信号量 栅栏 闭锁)原创 2023-01-08 17:30:58 · 4808 阅读 · 72 评论 -
Java 并发编程之Semaphore详解
Semaphore当前在多线程环境下被广泛使用,信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire()获取一个许可,如果没有就等待,而 release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。原创 2023-01-02 00:33:18 · 4678 阅读 · 25 评论 -
Redisson中的“琐事”
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, Bl原创 2023-01-01 20:52:05 · 1386 阅读 · 20 评论 -
Java中的自旋锁,手动实现一个自旋锁
CAS是实现自旋锁的基础,CAS利用CPU指令保证了操作的原子性,已达到锁的效果。自旋是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁, 当线程发现锁被占用时,会不断循环判断锁的状态,直到获取。这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU。原创 2022-12-24 15:45:01 · 2552 阅读 · 24 评论 -
Arthas(Java 应用诊断利器)
Arthas 是由`Alibaba`开源的`Java`监控诊断工具,通过全局视角**实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等**,大大提升线上问题排查效率。原创 2022-12-12 22:53:49 · 3175 阅读 · 16 评论 -
OkHttp搞定Http请求
OkHttp是一款高效的HTTP客户端框架:HTTP/2支持允许对同一主机的所有请求共享一个套接字。连接池可以减少请求延迟(如果HTTP/2不可用)。透明GZIP压缩下载大小。响应缓存完全避免了重复请求的网络。原创 2022-12-04 14:29:52 · 5490 阅读 · 16 评论 -
Spring Batch输出文本数据 XML数据 JSON数据 数据库
Spring Batch输出文本数据 XML数据 JSON数据 数据库原创 2022-11-14 23:01:48 · 2532 阅读 · 18 评论 -
Spring-Batch读取数据 文本数据 数据库数据 XML数据 JSON数据
Spring-Batch读取数据 文本数据 数据库数据 XML数据 JSON数据原创 2022-11-14 23:00:01 · 2907 阅读 · 16 评论 -
Spring Batch多步骤任务、并行执行、任务决策器、任务嵌套
`Spring Batch` 提供了在处理大量记录时必不可少的可重用功能,包括日志记录/跟踪、事务管理、作业处理统计、作业重新启动、跳过和资源管理。它还提供更先进的技术服务和功能,通过优化和分区技术实现极高容量和高性能的批处理作业。简单和复杂的大批量批处理作业都可以以高度可扩展的方式利用该框架来处理大量信息。原创 2022-10-14 20:30:00 · 3224 阅读 · 10 评论 -
Spring-webflux 响应式编程
2. Spring-webflux简介3. 什么是“响应式”4. Spring-webflux的响应式API5. Spring MVC 还是 WebFlux?6. 并发模型7. webflux使用响应式编程原创 2022-09-04 18:33:03 · 3692 阅读 · 14 评论