2024年3月6日
作者: Java4ye 概览 本文将讲解 Spring 的原理,看看一个 Bean 是怎么被创建出来的,中间经历过那几道工序加工,它的生命周期是怎样的,以及有哪些扩展点,后置处理器可以使用,让你对 Spring 多一些了解! 目录 本文会先大概介绍下这些知识点 👇 印象中的 Spring 脑海中有这么一条公式: 👉 IOC = 工厂模式 + XML + 反射 👉 而 DI , AOP , 事务 等也都……
阅读全文
2024年3月6日
1 设计原理与基本过程 在使用 Spring 声明式事务处理 的时候,一种常用的方法是结合 IoC 容器 和 Spring 已有的 TransactionProxyFactoryBean 对事务管理进行配置,比如,可以在这个 TransactionProxyFactoryBean 中为事务方法配置传播行为、并发事务隔离级别等事务处理属性,从而对声明式事务的处理提供指导。具体来说,在对声明式事务处理的原理分析中,声明式事务处理的实现大……
阅读全文
2024年3月6日
1 Spring 事务处理的应用场景 下面,我们以 DataSourceTransactionManager 事务管理器 为例,看一下在具体的事务管理器中如何实现事务创建、提交和回滚这些底层的事务处理操作。DataSourceTransationManager 和其他事务管理器一样,如 JtaTransactionManager,JpaTransaction……
阅读全文
2024年3月6日
1 事务处理的编程式使用 1 2 3 4 5 6 7 8 9 10 11 TransactionDefinition td = new DefaultTransactionDefinition(); // transactionManager 是某一个具体的 PlatformTransactionManager实现类 的对象 TransactionStatus ts = transactionManager.getTransaction(td); try { // 这里是需要进行事务处理的方法调用 } catch (Exception e) { transactionManager.rollback(ts); throw e; } transactionManager.commit(ts); 在使用编程式事务处理的过程中,利用 DefaultTransactionDefinition 对象 来持有事务处理属性。同时,在创建事务的……
阅读全文
2024年3月6日
JavaEE 应用中的事务处理是一个重要并且涉及范围很广的领域。事务管理的实现往往涉及并发和数据一致性方面的问题。作为应用平台的 Spring,具有在多种环境中配置和使用事务处理的能力,也就是说通过使用 Spring 的事务组件,可以把事务处理的工作统一起来,并为事务处理提供通用的支持。 在涉及单个数据库局部……
阅读全文
2024年3月6日
Servlet 温习 Servlet 是 Java 平台上用于扩展基于请求-响应模式的 Web 应用程序功能的一种技术。在这篇博客中,我们将温习一下 Servlet 的基本概念和使用方法。 1. Servlet 的基本概念 Servlet 是 Java 平台上运行的一个小程序,它可以接收和响应来自客户端的请求,并向客户端发送响应。Servlet 容器(如 Tomcat)负责管理 Servlet 的生命周期,……
阅读全文
2024年3月6日
1 SpringMVC 应用场景 在使用 SpringMVC 时,除了要在 web.xml 中配置 ContextLoaderListener 外,还要对 DispatcherServlet 进行配置。作为一个 Servlet,这个 DispatcherServlet 实现的是 Sun 的 J2EE 核心模式 中的 前端控制器模式(Front Controller), 作为一个前端控制器,所有的 Web 请求 都需要通过它来进行转发、匹配、数据处理,然后转由页面进行展现,因此这个 DispatcerServlet 可以看……
阅读全文
2024年3月6日
Spring-MVC 跨域 CrossOrigin 注解 通过注解设置跨域 demo 如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package com.huifer.source.controller; import org.springframework.web.bind.annotation.*; import java.util.HashMap; @CrossOrigin(maxAge = 3600) @RequestMapping("/") @RestController public class JSONController { @ResponseBody @GetMapping(value = "/json") public Object ob() { HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("1", "a"); return hashMap; } } 切入点: org.springframework.web.servlet.handler.AbstractHandlerMethodMapping#registerHandlerMethod org.springframework.web.servlet.handler.AbstractHandlerMethodMapp……
阅读全文
2024年3月6日
1 Web 环境中的 SpringMVC 在 Web 环境 中,SpringMVC 是建立在 IoC 容器 基础上的。了解 SpringMVC,首先要了解 Spring 的 IoC 容器 是如何在 Web 环境 中被载入并起作用的。 Spring 的 IoC 是一个独立模块,它并不直接在 Web 容器 中发挥作用,如果要在 Web 环境 中使用 IoC 容器,需要 Spring 为 IoC 设计一个启动过程,把 IoC 容器 导入,并在 Web 容器 中……
阅读全文
2024年3月6日
Spring5 新特性 - spring.components Author: HuiFer 源码阅读仓库: SourceHot-Spring 解析 相关类: org.springframework.context.index.CandidateComponentsIndexLoader 测试用例: org.springframework.context.annotation.ClassPathScanningCandidateComponentProviderTests.defaultsWithIndex,org.springframework.context.index.CandidateComponentsIndexLoaderTests CandidateComponentsIndexLoader是怎么找出来的,全文搜索spring.components 使用介绍 下面是从resources/example/scannable/spring.component……
阅读全文