Spring
文章平均质量分 84
程序猿进阶
梦想成为自由职业者
展开
-
Java面试——Spring
【1】用户发送请求至前端控制器。原创 2024-08-30 05:30:00 · 1444 阅读 · 59 评论 -
@Component 注解高端玩法【策略模式】
首先,定义一个接口和它的多个实现类。@Override自动注入所有实现类到Map接下来,在需要使用这些实现类的地方,使用@Autowired注解和一个来自动注入所有实现类。原创 2024-08-05 00:15:00 · 1363 阅读 · 70 评论 -
关于Spring事务管理之默认事务间调用问题
这里用到的事务配置为注解方式, 目前我们项目开发过程中使用配置文件方式, 一般为以下方式。这种方式的事务配置, 更容易引起问题。没有接受到里面抛出的异常, 方法继续执行, 执行结束后, 事务提交。, 默认事务再被调用时, 如外层方法无事务, 自身会新启事务。由事务的传播行为我们知道, 如果将方法配置为默认事务。的时候检测到事务被标记为回滚, 与预期不符, 也就是。, 作为一个独立事务来执行. 由此存在一个问题。出现异常后它将事务标记为回滚。的事务回滚依托在异常之上, 当。, 之后再被调用的方法。原创 2024-04-24 05:00:00 · 2558 阅读 · 91 评论 -
Spring事务那些事
下面列举了各公司框架使用到的亊务传播部分说明,还有些不常用传播行为,因为实际使用的少,大家在网上了解下就行了。传播行为意义表示当前方法必须运行在一个事务中,如果当前存在一个事务,那么该方法运行在这个事务中,否则,将创建一个新的事务新建事务,表示当前方法必须运行在自己的事务中,如果当前存在一个事务,那么这个事务将在该方法运行期间被挂起表示如果当前事务存在,则方法应该运行在一个嵌套事务中。否则,它看起来和看起来没什么俩样。原创 2024-04-05 05:00:00 · 1779 阅读 · 43 评论 -
Spring Native 解放 JVM
放入类路径,就能在目标系统上进行扩展。不幸的是,这会减慢启动时间,而且不会带来任何好处,尤其是对于云原生应用,因为在云原生应用中,服务器运行时和。的多语言能力使得在一个应用程序中混合使用多种编程语言成为可能,同时消除了不同语言间互相调用的成本。虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常适合容器和。因此,需要为每个支持的目标系统进行一次构建,在使用。的替代方案,提供一个能将应用程序打包,并运行在轻量级容器的方案。在运行时进行编译,这样可以在执行应用程序时进行观察和优化。原创 2024-02-11 21:20:05 · 4830 阅读 · 66 评论 -
Spring IOC 源码分析
【1】Spring容器在启动的时候,先会保存所有注册来的Bean的定义信息;■Xml注册■ 注解注册Bean@Service@Component@Bean等等【2】Spring容器会在合适的时机创建bean;■ 用到这个bean的时候,利用getBean创建bean,创建好后保存在容器中。■ 统一创建剩下所有bean的时候,调用:每一个bean的创建完成,都会使用各种后置处理器进行处理,来增强bean的功能:■:处理自动注入;■:来做AOP功能;等等。。。事件监听。原创 2024-01-13 12:00:00 · 1957 阅读 · 39 评论 -
ApplicationContextAware 类
【1】采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化,这样,我们就不能发现一些存在的Spring的配置问题。而则相反,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误。相对于基本的唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。【2】延迟加载,如果Bean的某一个属性没有注入,加载后,直至第一次使用调用getBean方法才会抛出异常;而。原创 2023-12-06 21:30:06 · 1745 阅读 · 59 评论 -
ApplicationRunner 类
在开发中可能会有这样的情景。需要在容器启动的时候执行一些内容。比如读取配置文件,数据库连接之类的。给我们提供了两个接口来帮助我们实现这种需求。方法,我们只需要实现这个方法即可。目前我在项目中用的是。是系统启动时传入的参数。原创 2023-12-05 22:56:37 · 984 阅读 · 33 评论 -
Java Reactor Stream
一、Reactor 概念“具有非阻塞负压功能的异步流处理系统” 的标准以及API。1、Reactive Streams 核心接口2、Flux 与 Mono【1】Flux 对象代表一个包含0-N个元素的响应式序列;【2】Mono 对象代表一个包含0-1个元素的响应式序列;3、Reactor 操作符二、Reacotr 基本原理......原创 2022-04-17 23:49:20 · 2047 阅读 · 7 评论 -
拦截器与过滤器的区别
拦截器和过滤器Filter都是基于思想实现的,用来解决项目中某一类问题的两种“工具”,两者在使用上有时候可能会分不清,希望能够通过本章解决这个痛点。原创 2023-11-15 22:55:12 · 602 阅读 · 76 评论 -
Spring 事务——源码分析
【事务环境搭建工作】:链接注解 @EnableTransactionManagement:在配置类中添加注解@EnableTransactionManagement,便开启了事务功能。此注解也是了解Spring事务源码的入口。@EnableTransactionManagementpublic class TxConfig {【1】@EnableTransactionManagement 利用 TransactionManagementConfigurationSelector 给容器中导入组件原创 2021-05-11 23:14:09 · 270 阅读 · 2 评论 -
Spring AOP面向切面编程案例 (注解驱动开发)
AOP(动态代理):指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;【1】导入 aop 模块;Spring AOP:(spring-aspects);【2】定义一个业务逻辑类(MathCalculator),在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,xxx);【3】定义一个日志切面类(LogAspects):切面类里面的方法需要动态感知 MathCalculator.div 运行到哪里然后执行;通知方法: ■ 前置通知(@Befor..原创 2021-05-11 23:11:09 · 444 阅读 · 2 评论 -
Spring 的核心组件详解
Spring 总共有十几个组件,但是真正核心的组件只有三个:Core、Context 和 Bean。它们构建起了整个 Spring的骨骼架构,没有它们就不可能有 AOP、Web 等上层的特性功能。一、Spring的设计理念Bean组件是 Spring核心中的重点,Spring 就是面向Bean编程的(Bean Oriented Programming:BOP)就像Object 对OOP的意义一样,没有对象的概念就像没有面向对象的编程,在Spring中没有Bean也就没有Spring存在的意义。我.原创 2021-04-20 12:32:27 · 1891 阅读 · 1 评论 -
Spring 注解整理
一、核心容器【1】@Configuration:告诉 Spring 这是一个配置类(配置类=配置文件)【2】@Bean:给容器中注册一个 Bean ;类型为返回值类型,id 默认是用方法名作为 id 也可以通过 value 属性添加 id(相当于 xml 中的 <bean> 标签),主要用于导入第三方包里面的组件。【3】@ComponentScan:包扫描,只要标注了 @Cotroller、@Service、@Repository、@Componet 等注解便会自动注入此类,exclud原创 2021-04-21 23:06:25 · 151 阅读 · 14 评论 -
注解式事务解决方案
一、添加事务配置文件:applicationContext-tx.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"原创 2021-04-20 12:43:55 · 307 阅读 · 12 评论