
Spring 全家桶
文章平均质量分 95
movYou521
这个作者很懒,什么都没留下…
展开
-
【Spring 源码深度解析】12 Spring 消息
文章目录1 介绍2 JMS 的独立使用3 Spring 整合 ActiveMQ4 源码分析4.1 JmsTemplate4.2 监听器容器1 介绍Java 消息服务(Java Message Service,JMS)应用程序接口是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间或分布式系统中发送消息,并进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS 提供支持。Java 消息服务的规范包括两种消息模式,点对点和发布原创 2022-03-19 17:30:57 · 714 阅读 · 0 评论 -
【Spring 源码深度解析】11远程服务
文章目录1 RMI1.1 使用示例1.2 服务端实现1.2.1 获取 registry1.2.2 初始化将要导出的实体对象1.2.3 RMI 服务激活调用1.3 客户端实现1.3.1 通过代理拦截并获取 stub1.3.2 增强进行远程连接2 HttpInvoker2.1 使用示例2.2 服务端实现2.2.1 创建代理2.2.2 处理来自客户端的 request2.3 客户端实现1 RMIJava 远程方法调用,即 Java RMI(Remote Method Invocation),是 Java 编程原创 2022-03-17 21:27:44 · 723 阅读 · 0 评论 -
【Spring 源码深度解析】10 SpringMVC
文章目录1 介绍2 SpringMVC 快速体验3 ContextLoaderListener3.1 ServletContextListener 的使用3.2 Spring 中的 ContextLoaderListener4 DispatcherServlet4.1 Servlet 的使用4.2 DispatcherServlet 的初始化4.3 WebApplicationContext 的初始化5 DispatcherServlet 的逻辑处理5.1 MultipartContent 类型的 requ原创 2022-03-12 16:44:48 · 266 阅读 · 0 评论 -
【Spring 源码深度解析】09 事务
文章目录1 JDBC 方式下的事务使用示例2 事务自定义标签2.1 注册 InfrastructureAdvisorAutoProxyCreator2.2 获取对应 class/method 的增强器3 事务增强器3.1 创建事务3.1.1 获取事务3.1.2 处理已存在的事务3.1.3 准备事务信息3.2 回滚处理3.3 事务提交1 JDBC 方式下的事务使用示例1)创建数据表结构CREATE TABLE user ( id int(11) NOT NULL auto increment, n原创 2022-03-06 21:12:46 · 318 阅读 · 0 评论 -
【Spring 源码深度解析】08 整合 Mybatis
文章目录1 Mybatis独立使用2 Spring 整合 Mybaits3 源码分析SqlSessionFactory 的创建3.2 MapperFactoryBean 的创建3.3 MapperScannerConfigurer1 Mybatis独立使用1)建立 POpublic class User { private Integer id; private String name; private Integer age; // 省略 set/ge原创 2022-03-02 21:02:58 · 427 阅读 · 0 评论 -
【Spring 源码深度解析】07数据库链接 JDBC
文章目录1 Spring 连接数据库实现(JDBC)2 save/update 功能的实现2.1 基础方法 execute2.2 update 中的回调函数3 Query 功能的实现4 queryForObject1 Spring 连接数据库实现(JDBC)Spring 对 JDBC 做了大量封装,消除了冗余代码,使得开发了大大减少。下面通过一个例子了解下 Spring 中 JDBC 的操作。1)创建数据表结构CREATE TABLE user ( id int(1) NOT NULL auto原创 2022-02-27 17:42:35 · 761 阅读 · 0 评论 -
【Spring 源码深度解析】06 AOP
文章目录1 使用示例2 动态AOP自定义标签2.1 注册 AnnotationAwareJAutoProxyCreator3 创建 AOP 代理3.1 获取增强方法或者增强器3.2 寻找匹配的增强器3.3 创建代理3.3.1 封装 Advisor 到 ProxyFactory 中3.3.2 获取代理4 静态 AOP 使用示例5 创建 AOP 静态代理5.1 Instrumentation 的使用5.2 自定义标签5.3 织入Spring 2.0 采用 @Aspect 注解对POJO进行标注,从而定义一个包原创 2022-02-25 22:53:17 · 231 阅读 · 0 评论 -
【Spring 源码深度解析】05 容器的扩展
文章目录1 设置配置路径2 扩展功能3 环境准备4 加载 BeanFactory4.1 定制 BeanFactory4.2 加载 BeanDefinition5 功能扩展5.1 增加对 SpEL 语言的支持5.2 增加属性注册编辑器5.2.1 使用自定义属性编辑器5.2.2 注册 Spring 自带的属性编辑器 CustomDateEditor5.2.3 注册源码5.3 添加 ApplicationContextAwareProcessor 处理器5.4 注册依赖忽略5.5 注册依赖6 BeanFactor原创 2022-02-19 16:33:37 · 431 阅读 · 0 评论 -
【Spring 源码深度解析】04 Bean 的加载
文章目录1 bean 加载的基本逻辑2 FactoryBean 的使用3 缓存中获取单例 bean4 从 bean 的实例中获取对象5 获取单例6 准备创建 bean6.1 处理 override 属性6.2 实例化的前置处理7 循环依赖7.1 概念7.2 Spring 如何解决循环依赖8 创建 bean8.1 创建 BeanWrapper 实例8.1.1 obtainFromSupplier8.1.2 instantiateUsingFactoryMethod8.1.3 autowireConstruct原创 2022-02-17 21:55:17 · 278 阅读 · 0 评论 -
【Spring 源码深度解析】03 自定义标签的解析
1 parseCustomElement当完成从配置文件到 Document 的转换并提取对应的 root 后,就开始了所有元素的解析,而在这过程中便开始了默认标签与自定义标签两种梢式的区分,函数如下:protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) { //对 beans 的处理,根节点是beans if (delegate.isDefaultNamespace(root原创 2022-01-27 22:37:15 · 433 阅读 · 0 评论 -
【Spring 源码深度解析】02 默认标签的解析
文章目录1 parseDefaultlement2 bean 标签的解析2.1 解析 BeanDefinition2.1.1 对其它属性的解析2.1.2 AbstractBeanDefinition 的属性2.2 解析默认标签中的自定义标签2.3 注册解析完成的 BeanDefinition2.3.1 通过 beanName 注册 BeanDefinition2.3.2 alias 的注册2.4 通知监听器解析注册完成3 alias 标签的解析4 import 标签的解析5. 嵌入式 beans 标签的解析原创 2022-01-23 15:49:24 · 280 阅读 · 0 评论 -
【Spring 源码深度解析】容器基本实现
文章目录1 Spring 的整体架构1.1 Core Container1.2 Aop 和 Instrument1.3 Messaging1.4 Data Access/Integration1.4 Web2 容器的基本实现2.1 容器的基本语法2.2 功能分析2.3 Spring 的结构组成2.3.1 beans 包的层次结构2.3.2 核心类介绍2.4 容器的基础 XmlBeanFactory2.4.1 配置文件的封装2.4.2 加载 Bean2.5 获取 EntityResolver2.5.1 en原创 2021-12-31 21:36:09 · 960 阅读 · 0 评论