看了马士兵讲的spring实现原理视频,代码部分就不列出来了,只是表达下看完视频后的想法,对一些模糊的概念进行总结
一、概念
1.Dependency Injection:依赖注入 完成bean与bean之间的依赖关系,通过配置文件中bean id定义的容器,依赖容器中的指定对象完成创建实例
2.Inverse of Control:控制反转 和DI是一个概念 当某个角色(java实例)需要另一个角色的协助,传统程序中由调用者创建被调用者的实例,但通过spring,创建被调用者的工作可以由容器(spring)来完成,直接通过配置XML完成注入调用者3.AOP aspect orient programming:面向切面编程(也是面向方法编程) 用于处理系统中分布于各个模块中的交叉关注点(方法)而不影响原来的代码。如日志、安全检查、对象池管理,通过spring的配置文件实现动态代理(参考设计模块中代理模式)。
DI原理:通过(类似DOM4J、JDOM等)读取xml配置文件格式获取信息,将获取的信息配合反射实现代码中对象new的替换,通过容器控制对象之间的依赖关系完成创建对象需要的实例。
AOP原理:参考动态代理实现原理
在程序运行时,创建代理类的XX.class(complitor、gclib、asc等多种方式实现),并通过反射机制加载调用其接口的方法。
1.通过jdk自带的reflect.proxy实现
Proxy.newProxyInstance(实现类.getclass().getclassloader(),实现类.getclass.getinterfaces().代理类对象)
这个方法完成如下工作:
a.根据传入的第二个参数interface动态生成一个类,实现了interface中的接口,并且继承了Proxy类重写了hashcode,toString等方法
b.通过传入的第一个参数classloder将刚生成的类加载到jvm中
c.利用第三个参数调用代理的构造函数创建代理的对象
d.将代理生成的实例返回给客户端
2.上述代理的实现过程通过jdk1.6的包中complitor实现 (见马士兵代理模式) (1).生成代理类的.java文件 (2)自动编译成.class (3)反射加载.class (4)调用接口委托类的方法
相关推荐
这篇小记将深入探讨Spring的主要组件和关键特性,带你一步步走进Spring的世界。 首先,我们要理解Spring的核心——依赖注入。在传统的Java程序中,对象之间的依赖关系通常是硬编码的,这使得代码难以测试和维护。...
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...
Spring框架是Java应用程序开发中的一个核心组件,它提供了一个丰富的IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)功能,使得开发者能够更方便地管理对象和实现模块化...
Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责集成系统和 Web 服务。今天,我们将探讨如何将这两个框架整合在一起,实现一个完整的 Web ...
java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
spring揭秘,了解spring内在运行逻辑
在构建分布式系统时,Spring Cloud Gateway 作为微服务架构中的边缘服务或 API 网关,扮演着至关重要的角色。它负责路由请求到相应的微服务,并可以提供过滤器功能,如限流、熔断等。而Spring Security 则是 Java ...
Getting started with Spring Framework (4th Edition) is a hands-on guide to begin developing applications using Spring Framework 5. The examples (consisting of 88 sample projects) that accompany this ...
标题中的“Spring 5, Spring Boot 2.0, Spring Cloud”揭示了三个核心的Java开发框架和技术。这些是Spring框架的最新版本,Spring Boot的第二个主要版本,以及用于构建微服务架构的Spring Cloud。 首先,Spring 5是...
包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...
spring3.0.0相关jar包 org.springframework.aop-3.0.0.RELEASE org.springframework.asm-3.0.0.RELEASE org.springframework.aspects-3.0.0.RELEASE org.springframework.beans-3.0.0.RELEASE org.springframework....
在本项目中,"我的日常小记:spring以及mybatis最终源码" 是一个记录了开发者个人编程经验的项目,主要涉及两个核心框架——Spring和MyBatis。这两个框架是Java开发领域中非常流行的技术栈,广泛应用于企业级后端...
spring3.1官方所有的jar包 org.springframework.aop-3.1.RELEASE.jar org.springframework.asm-3.1.RELEASE.jar org.springframework.aspects-3.1.RELEASE.jar org.springframework.beans-3.1.RELEASE.jar org....
spring配置 spring配置 spring配置 spring配置 spring配置
spring4.3.1全套jar下载。 4.3.1/spring-aop-4.3.1.RELEASE.jar 4.3.1/spring-aspects-4.3.1.RELEASE.jar 4.3.1/spring-beans-4.3.1.RELEASE.jar 4.3.1/spring-context-4.3.1.RELEASE.jar 4.3.1/spring-core-4.3.1....
Spring 框架是 Java 开发中的一个核心组件,它为构建企业级应用程序提供了全面的编程和配置模型。Spring 4.3.14 是该框架的最后一个4.x系列正式版,发布于2018年2月24日。这个版本在Spring 5.0发布之前提供了一个...
在IT行业中,Spring框架是Java应用开发中的一个关键组件,它提供了一整套服务来简化企业级应用的构建。RabbitMQ则是一个流行的开源消息队列系统,它基于AMQP(Advanced Message Queuing Protocol)协议,用于高效地...
最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,最新 spring mvc 资源,...
Spring Cloud和Spring Boot是两个非常重要的Java开发框架,它们在微服务架构中扮演着核心角色。Spring Boot简化了创建独立的、生产级别的基于Spring的应用程序的过程,而Spring Cloud则为开发者提供了快速构建分布式...