IOC
IOC DI 含义
IOC(控制反转容器)
控制反转:指应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的,这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。是创建对象的方式反转了。
DI(依赖注入):在运行期,由外部容器动态地将依赖对象注入到组件中。
SpringBean 作用域及生命周期
Bean的作用域:singleton(单例)会返回singleton缓存池内的一个对象
prototype(原型)创建prototype对象返回给使用者
bean 的生命周期:启动容器通过调用getBean()方法调用某个bean,实例化对象,设置属性值,通过init-method属性配置进行初始化方法调用,若bean的范围是Singleton则返回缓存池中的对象,若是prototype则会创建对象交给使用者,通过destroy-method属性配置的销毁方法,生命周期结束。
IOC容器的实现
BeanFactory与ApplicationContext关系ApplicationContext包含BeanFactory的所有功能。通常建议比BeanFactory优先,除非有一些限制的场合如字节长度对内存有很大的影响时才会作用BeanFactory
BeanFactory只支持Bean实例化和装配,而ApplicationContext则支持Bean实例化和装配、自动BeanPostProcessor注册、自动BeanFactoryProcessor注册、便捷的MessageSource访问和ApplicationEvent发送。
依赖注入的几种方式
依赖注入分为:涉值注入、方法注入和接口注入
AOP
AOP实现原理
动态代理
JDK\CGLIB 各自特性以及优缺点1、JDK1.3下,JDK动态代理性能很低,高版本性能有所提高
都是基于动态代理,jak宣称接口,
2、CGLIB所创建的动态代理对象的性能比JDK性能高10倍,但创建效率要低8倍,所以对singleton的代理对象或者具有实例池的代理,因为无须频繁创建代理对象,优先考虑CGLIB代理,反之适合JDK代理
3、JDK动态代理的缺点是:必须要提供接口,CGLIB代理的缺点是不能对目标类中final方法进行代理。
SpringAOP中实现代理的方式
使用ProxyFactoryBean创建AOP代理或使用ProxyFactory通过编程创建AOP代理,通过注解或schema
org.springframework.aop.framework.proxyFactory
org.springframework.aop.framework..proxyFactoryBean
实例化代理工厂
shcama
通过注解方式
用代理工厂bean
SpringAOP中增强的类型
前置增强、后置增强、环绕增强、异常抛出增强、引介增强
什么是切点,增强和切面
切点:指要对那些连接点进行拦截的定义
增强:指拦截到连接点之后所要作的事情就是增强
切面:指横切性关注点的抽象。
目标源
目标源分为:热交换目标源、池化目标源、原型目标源、ThreadLocal目标源[/align]
分享到:
相关推荐
在 Spring 框架中,IoC(Inversion of Control,控制反转)和 DI(Dependency Injection,依赖注入)是核心概念,它们极大地简化了软件开发过程,降低了组件之间的耦合度。Spring 作为一个轻量级的框架,不仅提供了 ...
spring框架的主要知识点,含ioc,aop,annotation等关键值时点
spring从搭建配置到简单开发的一个整体流程,比较适合打基础的朋友!
Spring重点知识,答案讲解详细,涵盖Spring全部知识,考试必考题
Spring教程 1 Spring框架概述 3 Spring是什么? 3 Spring的历史 4 Spring的使命(Mission Statement) 4 Spring受到的批判 4 Spring包含的模块 5 总结 6 Spring的IoC容器 6 用户注册的例子 7 面向接口编程 8 (用户...
当然你可以采用其它的一些工具来设法令整个应用包变小,节省空间的重点在于准确地找出自己所需的Spring依赖类,然后合并所需的类与包就可以了。Eclispe有个插件叫 ClassPath Helper可以帮你找找所依赖的类。 ...
Spring Boot的配置文件(application.properties或application.yml)的使用方法,以及如何通过@ConfigurationProperties将配置绑定到Java对象,也是学习的重点。 Spring Boot对于数据库的支持非常全面,包括JDBC、...
7. **学习重点**: - 理解Spring MVC的请求处理流程和配置方式。 - 学习Spring Security的核心概念,如认证、授权和过滤器链。 - 掌握如何在没有数据库的情况下模拟用户认证过程。 8. **实践应用**: - 可以...
Spring是个强大JAVA应用框架广泛地应用于JAVA应用为PlainOldJavaObjects(POJOs)提供企业级 服务Spring利用依赖注入...此以外还有其他原因例如领域模型设计都能影响XML配置但是这篇文章重点研究XML配置易读性和易管理性
Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现原理一直是许多开发者深入研究的重点。本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control,控制反转)、AOP...
这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供...
在"Spring2+实例"中,我们重点关注的是spring-framework-2.0-with-dependencies.zip这个压缩包。这个文件包含了Spring框架2.0的完整资源,包括所有必需的库和依赖项,使得开发者可以直接开始进行项目开发而无需单独...
java重点面试题-Spring+Spring MVC+Spring Boot+MySQL
Spring的核心组件如BeanFactory、ApplicationContext、AOP代理等都是源码探索的重点。其中: - **BeanFactory**:它是Spring容器的基础,负责管理bean的创建、初始化和依赖注入。 - **ApplicationContext**:它是...
本次课程以SpringData为中心,重点讲解了其JPA组件,扩展讲解了redis,mongDB,ES组件,并且对部分组件做了必要的源码分析。而且在课程的最后部分加入了一个综合案例,可以将前面章节所学知识点应用到一个项目中,帮助...
- 学习时,应重点理解Spring的XML配置和Java配置方式,以及如何创建Bean、配置依赖注入和AOP。 3. **Eclipse_Spring_入门书籍.pdf**: - 这份资源可能详细介绍了如何在Eclipse集成开发环境中配置和使用Spring。...
书中重点讲解Web流、流定义语言、流执行、流的测试以及自定义扩展等精髓内容,并结合使用Spring WebFlow 1开发的实例来向读者说明如何将其实际应用到项目中。尤其弥足珍贵的是,作者从框架设计者角度深入阐述了...
Spring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024...
Spring面试题-重点 Spring概述 Spring是一个轻量级Java开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量...
它可能会重点介绍新特性,如XML配置的简化(如@Annotations)、Bean定义的增强(如Prototype scope和Lazy initialization)、表达式语言(Spring Expression Language, SpEL)以及对JSR-303 Bean Validation的支持。...