自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(462)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis熟悉到精通:开篇

并不是所有的缓存都只是为了提升速度,因为在分布式系统中,缓存机制实际上是系统级性能在设计的⼀个重要权衡⼿段。⽐如当某个数据库的负载⽐较⾼,接近系统瓶颈时,我们就可以使⽤缓存技术, 把负荷分担到其他数据库中,那么这⾥使⽤缓存的⽬的,主要就是。强一致性数据,它是指代码数据会经常发生变化,而且业务对数据库的一致性要求非 常高,也就是说当数据发生变更后,其他用戶在系统中的任何地方,都应该看到的是更新后的数据。也就是说,所有的数据修改都必须确保可以同步修改 缓存与数据库中的数据。那么,针对这种类型的数据,一般是。

2023-07-10 17:57:04 1913

原创 Spring-Autowire&FactoryBean

autowire 即自动注入的意思,通过使用 autowire 特性,我们就不用再显示的配置 bean 之间的依赖了。把依赖的发现和注入都交给 Spring 去处理,省时又省力。autowire 几个可选项,比如 byName、byType 和 constructor 等。autowire 是一个常用特性,相信大家都比较熟悉了,所以本节我们就 byName 为例,快速结束 autowire 特性的介绍。

2023-07-10 16:35:44 2000

原创 Spring MVC中的HandlerInterceptors和Filters

比较Java servlet过滤器和Spring MVC Handlerinterceptor,以及什么时候一个比另一个更好。关键的收获是使用Filters,可以在请求到达的控制器Spring MVC之外之前操作它们。否则,Handlerinterceptors是应用程序特定横切关注点的好地方。通过提供对目标Handler和ModelAndView对象的访问,拥有了更细粒度的控制。

2023-07-10 15:03:13 1644

原创 Spring中自定义Bean特性

Spring框架提供了许多接口,可以使用它们来定制bean的性质。Aware。

2023-07-10 14:50:58 415

原创 Springboot启用HTTP响应压缩

官方文档:https://docs.spring.io/spring-boot/docs/2.3.12.RELEASE/reference/htmlsingle/#how-to-enable-http-response-compression

2023-07-10 14:43:36 952

原创 动态注册SpringMVC Controller类

主要类源码核心代码。

2023-07-10 14:26:26 947

原创 Spring容器扩展点在微服务中的使用

(20230306)Spring容器扩展点在微服务中的使用。

2023-07-07 15:11:45 1160

原创 ribbon源码中线程是的使用

使用单例模式(静态内部类),初始化线程池。

2023-07-07 14:56:54 884

原创 Future&CompletableFuture

直接继承Thread或者实现Runnable接口都可以创建线程,但是这两种方法都有一个问题就是:没有返回值,也就是不能获取执行完的结果。因此java1.5就提供了Callable接口来实现这一场景,而Future和FutureTask就可以和Callable接口配合起来使用。

2023-07-07 14:50:09 101

原创 在Java中压缩和解压缩

如何将文件压缩到归档文件中,以及如何解压缩归档文件,所有这些都使用Java提供的核心库。这些核心库是java.util.zip包的一部分,可以在其中找到所有与压缩和解压缩相关方法。

2023-07-01 07:43:25 341

原创 全局JSON序列化导致prometheus数据格式错乱

现场配置完prometheus端点后,返回数据格式乱了,如下图所示正常结果数据如下图所示。

2022-11-29 16:53:30 1891

原创 有效的 @SuppressWarnings 警告名称

了解 与@SuppressWarnings Java 注解一起使用的不同警告名称,它允许编译器抑制警告。 这些警告名称允许抑制特定的警告。 可用的警告名称取决于我们的 IDE 或 Java 编译器以下是@SuppressWarnings 注解中可用的有效警告名称列表:使用不同警告名称的示例。在下面的示例中,警告名称抑制了方法中未使用值的警告:3.2. @SuppressWarnings(“deprecated)在下面的示例中,警告名称禁止使用*@deprecated*方法的警告:3.3. @Suppr

2022-06-18 09:48:33 1364

原创 Spring单例bean如何处理并发请求

当有多个相同类型的实现时,命名一个Spring bean非常有用。这是因为 bean 没有唯一的名称,那么注入 bean 对 Spring 来说是不明确的。通过控制 bean 的命名,可以告诉 Spring 要将哪个 bean 注入目标对象。Spring为创建 bean提供了多个注解,可以在不同的层次上使用这些注解。例如,可以在 bean 类上放置一些注解,而在创建 bean 的方法上放置一些注解。首先,来看 Spring 的默认命名策略在。当只指定注解而没有任何值时,Spring 如何命名 bean?从在

2022-06-18 09:42:21 3052

原创 Spring bean名称

当有多个相同类型的实现时,命名一个Spring bean非常有用。这是因为 bean 没有唯一的名称,那么注入 bean 对 Spring 来说是不明确的。通过控制 bean 的命名,可以告诉 Spring 要将哪个 bean 注入目标对象。Spring为创建 bean提供了多个注解,可以在不同的层次上使用这些注解。例如,可以在 bean 类上放置一些注解,而在创建 bean 的方法上放置一些注解。首先,来看 Spring 的默认命名策略在。当只指定注解而没有任何值时,Spring 如何命名 bean?从在

2022-06-18 09:34:55 3717

原创 Spring ApplicationContext

详细探索 Spring ApplicationContext接口Spring 框架的主要特性之一是 IoC(控制反转)容器。Spring IoC 容器负责管理应用程序的对象。它使用依赖注入来实现控制反转。接口*BeanFactory* 和*ApplicationContext* 代表 Spring IoC 容器。这里,BeanFactory是访问 Spring 容器的根接口。它提供了管理 bean 的基本功能。另一方面,ApplicationContext 是BeanFactory的子接口。因此,它提供了B

2022-06-18 09:17:36 418

原创 如何在Spring中动态自动装配Bean

介绍如何在 Spring 中动态地自动装配 bean。首先展示一个动态自动装配可能会有所帮助的真实用例。 除此之外,将展示如何在 Spring 中以两种不同的方式解决它。动态自动装配在需要动态更改 Spring 的 bean 执行逻辑的地方很有帮助。 这在根据一些运行时变量选择要执行的代码的地方尤其实用。为了演示一个真实的用例,创建一个控制世界不同地区的服务器的应用程序。 出于这个原因,创建了一个带有两个简单方法的接口:两个实现类假设有一个网站,用户可以选择检查服务器是否在所选区域中处于活动状态。 因

2022-06-17 14:52:13 1789

原创 RestTemplate设置代理

1.介绍了解如何使用 RestTemplate 向代理发送请求。2.依赖首先,RestTemplateCustomizer 使用 HttpClient 类连接到代理。要使用该类,需要将 Apache 的 httpcore 依赖添加到 Maven pom.xml 文件中:<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</a

2022-03-18 08:15:20 8412 1

原创 Spring 控制反转和依赖注入简介

文章目录1.介绍2.什么是控制反转?3.什么是依赖注入?4.Spring IoC 容器5.基于构造函数的依赖注入6.基于Setter的依赖注入7.基于字段的依赖注入8.自动装配依赖9.延迟初始化的 Bean1.介绍介绍 IoC(控制反转)和 DI(依赖注入)的概念,了解如何在 Spring 框架中实现的。2.什么是控制反转?控制反转是软件工程中的一项原则,它将对象或程序部分的控制权转移到容器或框架。 我们最常在面向对象编程的上下文中使用它。与传统的自定义代码调用库编程相比,IoC 使框架能够控制程

2021-11-27 22:41:57 810

原创 Spring Bean 生命周期和回调

1.介绍了解 Spring 容器管理的 Spring Bean 生命周期,包括对 Spring 容器和 IoC 的理解。 同时了解 Spring bean 生命周期回调处理程序和后处理器。 Spring Framework 提供了几种回调方法来创建 bean 和一些方法来销毁 Spring IoC Container 中的 bean。Spring Framework 提供了几个标记接口来更改容器中 bean 的行为; 它们包括 InitializingBean 和 DisposableBean。 实现

2021-11-27 22:39:54 1092

原创 Spring中@Autowired@Resource和@Inject注解区别

1.介绍如何使用与依赖注入相关的注解,即 @Resource、@Inject 和 @Autowired 。 这些注解为类提供了一种解决依赖关系的声明方式:@Autowired ArbitraryClass arbObject;与直接实例化它们相反(命令式方式)ArbitraryClass arbObject = new ArbitraryClass();三个注解中有两个属于 Java 扩展包:javax.annotation.Resource 和 javax.inject.Inject。 @

2021-11-27 22:37:58 2544 3

原创 热门 Spring 框架问题

1.Spring核心1.1.什么是Spring框架?Spring 是用于开发 Java Enterprise Edition 应用程序的最广泛使用的框架。 此外,Spring 的核心特性可用于开发任何 Java 应用程序。使用它的扩展在 Jakarta EE 平台之上构建各种 Web 应用程序。 也可以在简单的独立应用程序中使用它的依赖注入的特性。1.2.使用 Spring 有什么好处?Spring 的目标是让 Jakarta EE 开发更容易:轻量级 - 在开发中使用该框架有轻微的开销。控

2021-11-27 22:35:16 165

原创 检测Spring 事务是否处于活动状态

1.介绍检测事务对于审计目的或处理未实现良好事务约定的复杂代码库可能很有用。2.事务配置为了使事务在 Spring 中工作,必须启用事务管理。 如果使用具有 spring-data-* 或 spring-tx 依赖项的 Spring Boot 项目,Spring 将默认启用事务管理。 否则,必须启用事务并显式提供事务管理器。首先,需要在@Configuration 类中添加@EnableTransactionManagement 注解。 为项目启用Spring 的注解驱动事务管理。接下来,必须提供

2021-11-27 22:33:52 4143

原创 Spring @Transactional 中的事务传播和隔离

20211030Spring @Transactional 中的事务传播和隔离1.介绍介绍 @Transactional 注释,以及它的隔离和传播设置。2.什么是@Transactional?可以使用@Transactional 将方法包装在数据库事务中。它允许为事务设置传播、隔离、超时、只读和回滚条件。 还可以指定事务管理器。2.1. @Transactional 实现细节Spring 创建一个代理,或者操作类字节码,来管理事务的创建、提交和回滚。 在代理的情况下,Spring 会忽略内部方

2021-11-27 22:31:24 2543

原创 Java中的压缩和解压缩

1.介绍本篇文章介绍,如何将文件压缩到存档中以及如何解压存档——所有这些都使用 Java 提供的核心库。这些核心库是 java.util.zip 包的一部分——可以在其中找到所有与压缩和解压缩相关的实用程序。2.压缩文件看一个简单的操作——压缩单个文件。对于示例,将一个名为 test1.txt 的文件压缩到一个名为compressed.zip 的存档文件中。@Test public void test1() throws IOException { String sou

2021-10-06 09:56:37 459

原创 Apache Commons IO

1.介绍Apache Commons 项目旨在为开发人员提供一组可以在日常代码中使用的公共库。本篇文章中将了解 Commons IO 模块的一些关键实用程序类及功能。2.Maven依赖要使用该库,需要在 pom.xml 中包含以下 Maven 依赖项:<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <

2021-10-06 09:45:26 3934

原创 java.util.concurrent.Future 使用指南

1.介绍本篇文章将了解 Future。 一个自 Java 1.5 以来就存在的接口,它在处理异步调用和并发处理时非常有用。2.创建Futures简单地说,Future 类表示异步计算的未来结果。 这个结果最终会在处理完成后出现在 Future 中。长时间运行的方法很适合异步处理和Future接口,因为可以在等待Future封装的任务完成的同时执行其他进程。一些可以利用Future异步特性的操作示例如下:计算密集型过程(数学和科学计算)操作大型数据结构(大数据)远程方法调用(下载文件、HTM

2021-10-06 09:43:14 2733

原创 Java并发面试问题

文章目录进程和线程有什么区别?如何创建线程实例并运行它?描述线程的不同状态以及状态转换何时发生。Runnable 和 Callable 接口之间有什么区别?它们是如何使用的?什么是守护线程,它的用例是什么? 如何创建守护线程?线程的中断标志是什么? 如何设置和检查它? 它与 InterruptedException 有什么关系?什么是 Executor 和 Executorservice? 这些接口之间有什么区别?标准库中 Executorservice 的可用实现有哪些?什么是 Java 内存模型 (Jm

2021-09-26 08:52:39 195

原创 Java中线程的生命周期

1.介绍详细讨论 Java 中的一个核心概念——线程的生命周期。2.Java 中的多线程在 Java 语言中,多线程是由线程的核心概念驱动的。 在它们的生命周期中,线程会经历各种状态:3.Java 线程的生命周期java.lang.Thread 类包含一个静态的 State 枚举——它定义了它的潜在状态。 在任何给定的时间点,线程只能处于以下状态之一:NEW – 新创建的尚未开始执行的线程RUNNABLE – 正在运行或准备执行但正在等待资源分配BLOCKED – 等待获取监视器锁以进入

2021-09-26 08:47:38 346

原创 Java中延迟队列使用指南

1.介绍本文中,将了解 java.util.concurrent 包中的 DelayQueue 构造。 这是一个阻塞队列,可以在生产者-消费者程序中使用。它有一个非常有用的特性——当消费者想要从队列中取出一个元素时,只能在该特定元素的延迟到期时才能取出。2.为DelayQueue中的元素实现Delayed想要放入 DelayQueue 的每个元素都需要实现 Delayed 接口。 假设要创建一个 DelayObject 类。 该类的实例将被放入 DelayQueue。将 String 数据和 de

2021-09-24 21:30:47 1104

原创 java.util.concurrent.BlockingQueue 使用指南

1.介绍本文介绍,解决并发生产者-消费者问题的最有用的构造 java.util.concurrent 之一。 将查看 BlockingQueue 接口的 API 以及该接口中的方法如何使编写并发程序更容易。2.阻塞队列类型可以区分两种类型的 BlockingQueue:无界队列—几乎可以无限增长有界队列—定义了最大容量2.1. 无界队列创建无界队列很简单:BlockingQueue<String> blockingQueue = new LinkedBlockingDeque

2021-09-24 21:27:06 371

原创 Java中的 Semaphores

1.介绍探索 Java 中信号量和互斥体的基础知识。2. Semaphore从 java.util.concurrent.Semaphore 开始,可以使用信号量来限制访问特定资源的并发线程数。在下面的例子中,将实现一个简单的登录队列来限制系统中的用户数量:public class LoginQueueUsingSemaphore { private Semaphore semaphore; public LoginQueueUsingSemaphore(int slotLimi

2021-09-24 21:20:27 563 1

原创 如何使用 Java 高效读取大文件

文章目录1.介绍2.读在内存中3.通过文件流读取4.使用 Apache Commons IO 进行流传输1.介绍如何以高效的方式从 Java 大文件中读取所有行。2.读在内存中准备准备1G作用的数据 @Test public void test0() throws IOException { final String json = "[{\"id\":\"380001671739949056\",\"type\":\"3\",\"work_no\":\"chn001

2021-09-24 21:12:14 8215

原创 Java8中流API Peek()

文章目录1.介绍2.快速开始3.中间与终端操作4.peek() 用法1.介绍Java Stream API 向我们介绍了处理数据的强大替代方案。在这个文章中将重点介绍 peek(),这是一种经常被误解的方法。2.快速开始有一个名字流,想把它们打印到控制台。由于 peek() 期望 Consumer 作为其唯一参数,它看起来很合适,所以试一试: @Test public void test1(){ Stream<String> nameStream =

2021-09-23 09:08:43 1654

原创 java.util.concurrent 包介绍

文章目录1.介绍2.主要组件2.1. Executor2.2. ExecutorService2.3. ScheduledExecutorService2.4. Future2.5. CountDownLatch2.6. CyclicBarrier2.7. Semaphore2.8. ThreadFactory2.9.BlockingQueue2.10. DelayQueue2.11. Locks2.12. Phaser1.介绍java.util.concurrent 包提供了用于创建并发应用程序的工具

2021-09-11 09:19:30 1491

原创 校验枚举类型

文章目录1.介绍2.校验枚举3.校验枚举的类型4.校验枚举的子集5.验证字符串是否匹配枚举的值1.介绍使用自定义注解校验枚举类型2.校验枚举大多数标准注解都不支持枚举的校验。例如当将 @Pattern 注解应校验枚举时, Hibernate Validator会报以下错误:javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint ‘javax.validati

2021-08-14 11:43:02 1962

原创 Java Bean 校验基础

文章目录1.介绍2. JSR 3803.依赖3.1. 校验 API3.2. 校验 API 参考实现3.3. 表达式语言依赖4.使用校验注解5.程序化校验5.1. 定义 Bean5.2.校验bean6.总结1.介绍介绍使用标准框架 JSR 380(也称为 Bean Validation 2.0)校验 Java bean 的基础知识。在大多数应用程序中,验证用户输入是一个非常普遍的要求。 而 Java Bean Validation 框架已经成为处理这种逻辑的事实标准。2. JSR 380JSR 38

2021-08-13 17:46:34 805

原创 Apache Commons Collections 与 Google Guava

1.介绍比较两个基于 Java 的开源库:Apache Commons 和 Google Guava。 这两个库都具有丰富的功能集,其中包含大量实用程序 API,主要用于集合和 I/O 领域。2.两个类库的简史Google Guava 是 Google 的一个项目,主要由该组织的工程师开发,尽管它现在已经开源。 启动它的主要动机是将 JDK 1.5 中引入的泛型包含到 Java 集合框架或 JCF 中,并增强其功能。自成立以来,该库扩展了其功能,现在包括图形、函数式编程、范围对象、缓存和字符串操作。

2021-08-13 17:42:49 939

原创 在SpringBoot2设置Max-HTTP-Header-Size

1.介绍默认情况下,Spring Boot Web 应用程序包括一个预配置的嵌入式 Web 服务器。 但是,在某些情况下,希望修改默认配置以满足自定义要求。如何在 Spring Boot 2.x 应用程序的 application.properties 文件中为请求标头设置和使用 max-http-header-size 属性。2. Max-HTTP-Header-SizeSpring Boot 支持 Tomcat、Undertow 和 Jetty 作为嵌入式服务器。 通常,在 Spring Boo

2021-08-13 17:22:52 8790

原创 在 Java 中忽略顺序判断两个集合

1.介绍对列表进行顺序无关的比较2.设置根据 List#equals Java 文档,如果两个列表以相同的顺序包含相同的元素,则它们是相等的。 因此,我们不能仅仅使用 equals 方法,因为我们想做与顺序无关的比较。准备三个集合数据 List<Integer> first = Arrays.asList(1, 3, 4, 6, 8); List<Integer> second = Arrays.asList(8, 1, 6, 3, 4); List

2021-08-09 14:01:09 1152

原创 Spring 静态字段中注入值

1.介绍如何使用 Spring 将值从 Java 属性文件注入到静态字段。2.问题application.proerties中添加了自定义属性name=注入静态字段将值注入到一个实例变量中。通常可以通过在实例字段上使用 @Value 注释来完成:@Value("${name}")private String name;但是,将其应用于静态字段时,值会是 null:@Value("${name}")private static String NAME_NULL;因为 Spring

2021-08-09 08:42:45 321

hibernate_validator_reference_5.1.3.pdf

hibernate_validator_reference_5.1.3 整合spring进行参数校验

2020-04-15

httpclient-tutorial开发指导文档.pdf

apache httpclient 开发指导文档4.5版本,内容比较全面,开发过程中值得借鉴,文档中各种应用场景已经覆盖到了。

2020-03-24

阿里巴巴eclipsejava代码检测规范

java代码开发规范,eclipse扫描插件,然你的开发更轻松破。

2018-05-22

空空如也

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

TA关注的人

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