spring
文章平均质量分 74
JAVA程序猿成长之路
这个作者很懒,什么都没留下…
展开
-
基于AOP的异步操作日志实现
我们常用aop实现传统的同步日志记录。如果业务中有涉及到就没法做到了。或者就是使用强耦合的方式来实现。但是这样就和AOP实现日志记录成了两套体系。原创 2024-08-23 08:57:45 · 184 阅读 · 0 评论 -
2024-01-开发技术积累
nacos源码中,如果是多实例,就采用nio读取文件。nacos raft协议 写文件。数据恢复,从文件中加载数据。以下代码 来自官方文档。原创 2024-08-23 08:43:58 · 398 阅读 · 0 评论 -
Spring中自定义注解进行类方法增强
说到对类方法增强,第一时间想到自定义注解,通过aop切面进行实现。这是一种常用做法,但是在某些场景下,如开发公共组件,定义aop切面可能不是最优方案。以后通过原生aop方式,自定义注解,对类方法进行增强。原创 2024-06-14 16:56:08 · 351 阅读 · 0 评论 -
Spring中对没有实现类的接口进行曾强
对没有实现类的接口进行增强,此场景在Spring中比较常见。最典型的两个就是Mybatis和feign的调用。其主要是通过FactoryBean实现的。原创 2024-06-14 16:54:17 · 437 阅读 · 0 评论 -
如何对Spring管理bean进行增强
提到对类进行增强,一定会想到动态代理。本文使用两种方法实现对类进行增强。原创 2024-06-14 16:52:58 · 525 阅读 · 0 评论 -
Service层中进行spring校验
【代码】Service层中进行spring校验。原创 2024-06-14 16:51:23 · 326 阅读 · 0 评论 -
Spring-Autowire&FactoryBean
autowire 即自动注入的意思,通过使用 autowire 特性,我们就不用再显示的配置 bean 之间的依赖了。把依赖的发现和注入都交给 Spring 去处理,省时又省力。autowire 几个可选项,比如 byName、byType 和 constructor 等。autowire 是一个常用特性,相信大家都比较熟悉了,所以本节我们就 byName 为例,快速结束 autowire 特性的介绍。原创 2023-07-10 16:35:44 · 2083 阅读 · 0 评论 -
Spring中自定义Bean特性
Spring框架提供了许多接口,可以使用它们来定制bean的性质。Aware。原创 2023-07-10 14:50:58 · 448 阅读 · 0 评论 -
动态注册SpringMVC Controller类
主要类源码核心代码。原创 2023-07-10 14:26:26 · 1277 阅读 · 0 评论 -
Spring容器扩展点在微服务中的使用
(20230306)Spring容器扩展点在微服务中的使用。原创 2023-07-07 15:11:45 · 1210 阅读 · 0 评论 -
Spring单例bean如何处理并发请求
当有多个相同类型的实现时,命名一个Spring bean非常有用。这是因为 bean 没有唯一的名称,那么注入 bean 对 Spring 来说是不明确的。通过控制 bean 的命名,可以告诉 Spring 要将哪个 bean 注入目标对象。Spring为创建 bean提供了多个注解,可以在不同的层次上使用这些注解。例如,可以在 bean 类上放置一些注解,而在创建 bean 的方法上放置一些注解。首先,来看 Spring 的默认命名策略在。当只指定注解而没有任何值时,Spring 如何命名 bean?从在原创 2022-06-18 09:42:21 · 3287 阅读 · 0 评论 -
Spring bean名称
当有多个相同类型的实现时,命名一个Spring bean非常有用。这是因为 bean 没有唯一的名称,那么注入 bean 对 Spring 来说是不明确的。通过控制 bean 的命名,可以告诉 Spring 要将哪个 bean 注入目标对象。Spring为创建 bean提供了多个注解,可以在不同的层次上使用这些注解。例如,可以在 bean 类上放置一些注解,而在创建 bean 的方法上放置一些注解。首先,来看 Spring 的默认命名策略在。当只指定注解而没有任何值时,Spring 如何命名 bean?从在原创 2022-06-18 09:34:55 · 3967 阅读 · 0 评论 -
Spring ApplicationContext
详细探索 Spring ApplicationContext接口Spring 框架的主要特性之一是 IoC(控制反转)容器。Spring IoC 容器负责管理应用程序的对象。它使用依赖注入来实现控制反转。接口*BeanFactory* 和*ApplicationContext* 代表 Spring IoC 容器。这里,BeanFactory是访问 Spring 容器的根接口。它提供了管理 bean 的基本功能。另一方面,ApplicationContext 是BeanFactory的子接口。因此,它提供了B原创 2022-06-18 09:17:36 · 482 阅读 · 0 评论 -
如何在Spring中动态自动装配Bean
介绍如何在 Spring 中动态地自动装配 bean。首先展示一个动态自动装配可能会有所帮助的真实用例。 除此之外,将展示如何在 Spring 中以两种不同的方式解决它。动态自动装配在需要动态更改 Spring 的 bean 执行逻辑的地方很有帮助。 这在根据一些运行时变量选择要执行的代码的地方尤其实用。为了演示一个真实的用例,创建一个控制世界不同地区的服务器的应用程序。 出于这个原因,创建了一个带有两个简单方法的接口:两个实现类假设有一个网站,用户可以选择检查服务器是否在所选区域中处于活动状态。 因原创 2022-06-17 14:52:13 · 1888 阅读 · 0 评论 -
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 · 8809 阅读 · 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 · 1001 阅读 · 1 评论 -
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 · 1122 阅读 · 0 评论 -
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 · 2699 阅读 · 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 · 194 阅读 · 1 评论 -
检测Spring 事务是否处于活动状态
1.介绍检测事务对于审计目的或处理未实现良好事务约定的复杂代码库可能很有用。2.事务配置为了使事务在 Spring 中工作,必须启用事务管理。 如果使用具有 spring-data-* 或 spring-tx 依赖项的 Spring Boot 项目,Spring 将默认启用事务管理。 否则,必须启用事务并显式提供事务管理器。首先,需要在@Configuration 类中添加@EnableTransactionManagement 注解。 为项目启用Spring 的注解驱动事务管理。接下来,必须提供原创 2021-11-27 22:33:52 · 4586 阅读 · 0 评论 -
Spring @Transactional 中的事务传播和隔离
20211030Spring @Transactional 中的事务传播和隔离1.介绍介绍 @Transactional 注释,以及它的隔离和传播设置。2.什么是@Transactional?可以使用@Transactional 将方法包装在数据库事务中。它允许为事务设置传播、隔离、超时、只读和回滚条件。 还可以指定事务管理器。2.1. @Transactional 实现细节Spring 创建一个代理,或者操作类字节码,来管理事务的创建、提交和回滚。 在代理的情况下,Spring 会忽略内部方原创 2021-11-27 22:31:24 · 3239 阅读 · 0 评论 -
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 · 368 阅读 · 0 评论 -
Spring中如何使用@Async
1.概述Spring对异步执行的支持和@Async注解的使用。用@Async注释bean的方法将使它在单独的线程中执行。 换句话说,调用者将不等待被调用方法的完成。Spring中一个有趣的方面是,框架中的事件支持在必要时也支持异步处理。2.启用异步支持首先通过Java配置启用异步处理。通过将@EnableAsync添加到配置类中来完成此操作:@Configuration@EnableAsyncpublic class SpringAsyncConfig { }启用注解就足够了。 还原创 2021-05-13 15:29:16 · 1409 阅读 · 1 评论 -
Spring 断言语句
1.概述介绍Spring Assert类的用途2.使用断言的目的Spring Assert类帮助验证参数。 通过使用Assert类的方法,可以编写期望为真的假设。 如果不满足,则会抛出运行时异常。每种Assert的方法都可以与Java assert语句进行比较。 如果Java assert语句的条件失败,则会在运行时引发错误。这是Spring Assert方法的一些特征:断言的方法是静态的抛出IllegalArgumentException或IllegalStateException第一个原创 2021-05-08 16:50:13 · 1565 阅读 · 0 评论 -
Spring null安全注解
1.概述从Spring 5开始,可以使用 null安全注解来帮助编写更安全的代码。 此功能称为“空安全性”,这是一组注解,其作用类似于监视潜在的空引用的安全措施。空安全功能不是让摆脱不安全的代码,而是在编译时生成警告。 这样的警告可以防止在运行时发生灾难性的空指针异常(NPE)。2.@NonNull注解org.springframework.lang包中在null安全功能的所有注解中,@NonNull注解是最重要的。 可以在需要对象引用的任何地方使用此注解声明非null约束:字段,方法参数或方原创 2021-04-30 08:44:09 · 968 阅读 · 1 评论 -
Spring中@Primary注解
1.概述讨论Spring的@Primary注解,该注解是框架在3.0版中引入的。其作用与功能,当有多个相同类型的bean时,使用@Primary来赋予bean更高的优先级。2.为什么需要@Primary?在某些情况下,需要注册多个相同类型的bean。在此示例中,有Employee类型的zhangSanEmployee()和liSiEmployee()Bean:@Configurationpublic class PrimaryConfig { @Bean public Empl原创 2021-04-29 19:45:47 · 64581 阅读 · 3 评论 -
Spring @Lazy注解使用指南
Spring @Lazy注解使用指南默认情况下,Spring在应用程序上下文的启动/引导时创建所有单例bean。 其背后的原因很简单:立即避免而不是在运行时检测所有可能的错误。但是,在某些情况下,需要创建一个bean,不是在应用程序上下文启动时,而是在请求时创建。2.延迟初始化从spring3.0开始,@Lazy注释已经存在。 有几种方法可以告诉IoC容器惰性地初始化bean。2.1. @Configuration配置类当在@Configuration类上放置@Lazy注解时,表明所有带有@Be原创 2021-04-20 11:57:07 · 644 阅读 · 0 评论 -
Spring @RequestParam注解
1.介绍学习了解Spring的@RequestParam注解及其属性。简而言之,可以使用@RequestParam从请求中提取查询参数,表单参数甚至文件。2.一个简单的映射@GetMapping("/api/foos")public String getFoos(@RequestParam String id) {return "ID: " + id;}在上面示例中,使用@RequestParam提取id查询参数。curl http://localhost:19999/api/foos?原创 2021-04-20 11:53:19 · 8110 阅读 · 0 评论 -
在Spring应用程序中如何加载类路径文件
1.介绍使用Spring访问和加载类路径中文件内容的各种方法。2.使用ResourceResource接口有助于抽象化对低级资源的访问。 实际上,它支持以统一的方式处理各种文件资源。看一下获取Resource实例的各种方法。2.1手动地public Resource loadEmployeesWithClassPathResource() { return new ClassPathResource("data/employees.json");}默认情况下,ClassPathRe原创 2021-04-19 09:02:55 · 708 阅读 · 0 评论 -
Spring中的@ConditionalOnProperty注解
1.概述介绍@ConditionalOnProperty注解的主要目的。2.@ConditionalOnProperty的目的通常,在开发基于Spring的应用程序时,可能需要根据配置属性的存在和值有条件地创建一些bean。例如,取决于是否将属性值设置为“ prod”或“ test”,可能想要注册一个DataSource bean来指向生产或测试数据库。幸运的是,实现这一目标并不像想象的那样困难。 Spring框架正是为此目的提供了@ConditionalOnProperty注解。简而言之,@C原创 2021-04-14 16:06:42 · 62837 阅读 · 1 评论 -
Spring和Spring Boot的Properties文件
1.概述如何通过Java配置和@PropertySource在Spring中设置和使用属性。还将看到属性在Spring Boot中的工作方式。2.通过注解注册属性文件Spring 3.1还引入了新的@PropertySource注解,作为将属性源添加到环境的便捷机制。可以将此注解与@Configuration注释结合使用:@Configuration@PropertySource("classpath:foo.properties")public class PropertiesWithJa原创 2021-04-14 16:02:26 · 444 阅读 · 0 评论 -
Spring YAML与properties
1.概述YAML是在配置文件中使用的人性化表示法。 为什么在Spring Boot中,我们更喜欢这种数据序列化而不是属性文件? 除了可读性和减少重复之外,YAML是将Configuration as Code编写为部署的理想语言。以同样的方式,将YAML用于Spring DevOps有助于12因子身份验证器建议的环境中配置变量的存储。接下来,将比较Spring YAML和Properties文件,以检查使用它们之间的主要优点。 但是请记住,选择YAML而非属性文件配置有时是个人喜好的决定。2.YAM原创 2021-04-12 19:18:55 · 723 阅读 · 0 评论 -
使用Spring从YAML文件读取内容映射为Map
1.概述如何在Spring Boot中从YAML文件注入到Map。首先,将对Spring框架中的YAML文件有一些了解。 然后,通过一个实际示例展示如何将YAML属性绑定到Map。2.Spring框架中的YAML文件使用YAML文件存储外部配置数据是一种常见的做法。 基本上,Spring支持使用YAML文档作为属性的替代方法,并在后台使用SnakeYAML对其进行解析。看看典型的YAML文件是什么样的:server: port: 8090 application: name: m原创 2021-04-12 19:18:00 · 16949 阅读 · 0 评论 -
Spring中@Valid和@Validated注解的差异
1.介绍验证用户输入是我们大多数应用程序中的常见功能。 在Java生态系统中,专门使用Java标准Bean验证API来支持此功能。 而且,从4.0版本开始,它也与Spring很好地集成在一起。 @Valid和@Validated注释源自此Standard Bean API。2.@Valid 和@Validated注解在Spring中,使用JSR-303的**@Valid批注进行方法级别验证。 此外,还可以使用它来标记成员属性以进行验证。 但是,此注释不支持组验证。**组有助于限制验证期间应用的约束。原创 2021-04-08 08:58:35 · 276 阅读 · 0 评论 -
Spring @Async/@Transactional 失效的原因及解决方案
原文:https://www.cnblogs.com/steve-jiang/p/12692299.html原创 2020-11-18 08:37:54 · 491 阅读 · 0 评论 -
InputStream转MultipartFile
//调用放 MultipartFile multipartFile = getMultipartFile(inputStream, originalFilename); /** * 获取封装得MultipartFile * * @param inputStream inputStream * @param fileName fileName * @return MultipartFile */ public Mu...原创 2020-10-28 17:07:22 · 17049 阅读 · 3 评论 -
Spring中AsyncRestTemplate的应用
Spring中AsyncRestTemplate的应用Web应用程序通常需要查询外部REST服务。 在为满足这些需求扩展应用程序时,HTTP和同步调用的本质会带来挑战:可能会阻塞多个线程,等待远程HTTP响应。AsyncRestTemplate类,在开发REST客户端时允许非阻塞异步支持。Spring的中心类,用于异步客户端HTTP访问。 公开与RestTemplate相似的方法,但返回Li...原创 2020-04-13 13:56:00 · 1343 阅读 · 0 评论 -
Spring任务执行和任务调度
介绍Spring框架分别通过TaskExecutor和TaskScheduler接口提供了异步执行和任务调度的抽象。 Spring还提供了那些接口的实现,这些接口在应用程序服务器环境中支持线程池或委托给CommonJ。 最终,在公共接口后面使用这些实现可以抽象化Java SE 5,Java SE 6和Java EE环境之间的差异。Spring还具有集成类,用于支持与Timer(自1.3起成为J...原创 2020-04-09 16:29:58 · 855 阅读 · 0 评论 -
Spring异步请求处理
Servlet容器配置在web.xml中对DispatcherServlet和所有filter添加对于配置了web.xml的应用程序,请确保更新至版本3.0:<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"http://jav...原创 2020-04-09 16:25:18 · 480 阅读 · 0 评论 -
使用Spring的Validator进行校验
使用Spring的Validator进行校验单对象校验让我们考虑一个小的数据对象:import lombok.Data;@Datapublic class Person { private String name; private int age;}我们将通过实现以下两个方法来提供Person类的验证行为org.springframework.validati...原创 2020-04-09 16:17:46 · 2268 阅读 · 0 评论