SPRING总结
一:IOC
实现IOC的方式有四种
1. 通过setter的方法注入
2. 通过构造器方式注入
3. 通过接口的方法注入
4. 通过标注的方式注入
IoC的意思是反向控制,就是说在初始化一个Bean时会将其相关的Bean都初始化,初始化Bean一般是在调用Bean容器的getBean方法时启动的(也有例外),其实现原理是:Bean容器的getBean方法会致使Bean的实例化和初始化,两个方法分别是createBeanInstance和populateBean,populateBean其实就是在设置Bean的各项属性,依赖注入也就发生在这个时候,设置Bean属性时会检查出Bean是否依赖了其它的Bean,如果存在依赖的话则会在相关的Bean容器里面去取依赖的Bean实例,如果相关的Bean还未实例化则会进行创建,这样又会调用容器的getBean方法,从而以递归的形式将一个Bean及其依赖的Bean全部创建好,这就是Spring的IoC原理。
二:AOP
spring对AOP的支持
1.若是目标对象实现了接口,那么会采用JDK的动态代理机制实现AOP
2.若是目标对象实现了接口,可以强制使用cglib实现AOP,及底层通过ASM等操作字节码进行动态代理
3.若是目标对象没有实现接口,必须使用cglib来实现AOP,SPRING会在CGLIB和JDK之间进行切换
JDK实现AOP必须实现接口java.lang.reflect.InvocationHandler.java
AOP实现基本都是字节码操作库譬如CGLIB/BCEL/ASM来做, 字节码修改库,更彻底的AOP可以采用调用aspectJ来实现。
问题一:如何强制实现CGLIB?
1.添加CGLIB库
2.在配置文件中添加:<aop:aspectj-autoproxy proxy-target-class="true"/>
问题二:JDK和CGLIB的区别?
JDK只能对实现了接口的类生成代理,而不能针对类
CGLIB是针对类实现代理的,主要对指定的类生成一个子类,并覆盖其中的方法
特殊的地方:若是即配置了xml,又配置了标识的话,那么会把方法执行两次
分享到:
相关推荐
`spring-aop-3.0.xsd` 是 Spring AOP 的 XML 配置文件,定义了与 AOP 相关的元素和属性。例如,你可以在这里定义切入点(pointcut)、通知(advises)以及代理配置。将此文件添加到 Eclipse 的 XML 目录(catalog)...
这里的`spring-aop-3.2.xsd`根据项目使用的Spring版本进行替换,以确保正确解析配置。 总的来说,`spring-aop.xsd`是Spring AOP配置的基础,它帮助开发者理解并正确编写AOP配置,提升开发效率。通过学习和熟练掌握...
《深入解析Spring AOP框架——以spring-aop.jar为例》 Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的核心部分之一,它为Java开发者提供了强大的面向切面的编程能力。本文将围绕...
- **`org.springframework.aop.aspectj.AspectJExpressionPointcut`**:实现切入点表达式的解析和匹配。 - **`org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAdvisorFactory`**:处理基于...
XSD文件在Spring框架中主要用来验证和解析基于XML的配置文件,例如`beans.xml`,这些文件定义了bean的实例化、依赖注入、AOP切面等配置。 压缩包内的子文件"spring-aop-4.2.xsd.txt"可能是XSD文件的文本版本,方便...
这里提到的是一组完整的Spring库,包括`spring-core`、`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`spring-test`、`spring-jdbc`、`spring-orm`、`spring-aop`和`spring-tx`,它们都是3.2.0...
《Spring AOP 4.0.0.RELEASE:深度解析与应用》 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它为开发者提供了声明式事务管理、日志记录、权限控制等核心功能。在4.0.0....
《Spring框架4.3.30.RELEASE:深入解析与应用》 Spring Framework是Java开发领域中的一个核心框架,以其模块化、松耦合和强大的依赖注入特性而闻名。本次我们关注的是Spring Framework的4.3.30.RELEASE版本,这是一...
《Spring Security Web源码解析与相关依赖》 Spring Security Web是Spring Security框架的重要组成部分,它主要负责Web应用程序的安全性,包括认证和授权等核心功能。本文将深入探讨Spring Security Web的源码,并...
spring version: 5.0.0; jdk: 1.8 IOC大致调用顺序(IOC调用的AOP标签解析)
二、AOP术语解析 1. 切面(Aspect):包含关注点和通知的模块化单元,是AOP的核心。 2. 连接点(Join Point):程序执行过程中的特定点,如方法调用、异常抛出等。 3. 通知(Advice):在特定连接点执行的代码,可以...
标签中的“源码”提示,这篇博文中可能还涉及到了Spring AOP的底层实现,可能分析了Spring如何通过代理模式生成拦截器链,以及如何在运行时解析并执行切点表达式。了解这些底层机制有助于开发者更有效地利用AOP,...
《Spring框架5.0.0.RELEASE:深度解析与应用》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用开发中占据着举足轻重的地位。本压缩包"spring-framework-5.0.0.RELEASE-dist.zip"包含了Spring框架5.0.0....
《Spring框架深度解析》 Spring Framework,作为Java开发领域中的基石,是企业级应用开发的首选框架。"spring-framework-master"这一压缩包包含了Spring框架的完整源码,为我们提供了深入理解这一强大工具的绝佳...
《Spring Framework 1.0 全面解析》 Spring Framework 是一个开源的Java平台,它为构建企业级应用提供了全面的基础设施。这个名为"spring-framework-1.0-with-dependencies.zip"的压缩包包含了Spring Framework 1.0...
2. 解析 AOP 配置:在解析 Bean 定义文件时,Spring AOP 也会解析 AOP 配置文件,例如 `<aop:config>` 标签。在这个过程中,Spring AOP 使用 configBeanDefinitionParser 来解析 AOP 配置文件,并生成相应的 Bean ...
此外,Spring 3.1引入了HandlerMethodArgumentResolver接口,使得自定义参数解析变得更加简单。 在事务管理方面,Spring 3.1.2.RELEASE改进了声明式事务处理,增强了对多数据源的支持,并提供了更细粒度的控制,...
《Spring Framework 5.3.14:深度解析与应用》 Spring Framework是Java开发中的一个核心框架,自2003年推出以来,已经成为了企业级应用开发的事实标准。本次我们关注的是Spring Framework的5.3.14版本,这个版本在...
2. **AOP(面向切面编程)**:Spring支持AOP,允许开发者定义“切面”,这些切面可以封装横切关注点,如日志、事务管理和安全性,使得核心业务逻辑更清晰。 3. **Spring MVC**:Spring MVC是Spring提供的Web开发...
- **Spring MVC**:是一个用于构建Web应用的全功能MVC框架,提供请求处理、视图解析、模型绑定等功能。 - **Spring Data**:简化了与各种数据存储(如数据库、NoSQL等)的交互,提供了统一的API。 - **Spring ...