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框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(IOC)和面向切面编程(AOP)功能闻名。在本文中,我们将深入探讨这些核心概念,并了解它们如何协同工作,提升应用程序的可维护性和可扩展性。 **...
spring从搭建配置到简单开发的一个整体流程,比较适合打基础的朋友!
Spring重点知识,答案讲解详细,涵盖Spring全部知识,考试必考题
Spring教程 Spring是一个开源的Java平台,它主要为简化企业级应用开发提供了全面的解决方案。这个框架的核心特性是依赖注入(Dependency Injection,简称DI),它允许开发者通过控制反转(Inversion of Control,...
- **减少样板配置**:Spring Boot 的设计重点在于减少样板化的配置。它采用了“约定优于配置”的原则,自动处理了许多基础配置,让开发者能够更加专注于业务逻辑。 **1.2 特性与优势** - **约定优于配置**:Spring...
Spring Boot的配置文件(application.properties或application.yml)的使用方法,以及如何通过@ConfigurationProperties将配置绑定到Java对象,也是学习的重点。 Spring Boot对于数据库的支持非常全面,包括JDBC、...
同时,性能优化和bug修复也是每个新版本的重点。 对于毕业设计或者深入学习软件工具的开发者来说,这份源码提供了深入理解Spring框架工作原理的机会。通过阅读源码,可以学习到设计模式、最佳实践以及如何编写高...
7. **学习重点**: - 理解Spring MVC的请求处理流程和配置方式。 - 学习Spring Security的核心概念,如认证、授权和过滤器链。 - 掌握如何在没有数据库的情况下模拟用户认证过程。 8. **实践应用**: - 可以...
同时,安全性一直是Spring Boot关注的重点,3.0版本可能会带来更多增强的安全特性,例如增强认证和授权机制,提供更好的数据保护策略。可测试性也是Spring Boot的核心优点之一,新版本有望通过改进测试支持,使得...
《精通 Spring Boot 42 讲》共分五大部分,第一部分是从零起步的基础内容,共4课,帮助...本章的重点内容是 Spring Boot 2.0 的新变化,如果学习过此前课程的同学可以重点关注这一节。下面我们就具体进入第一讲的内容。
Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现原理一直是许多开发者深入研究的重点。本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control,控制反转)、AOP...
在"springCloud-master_单点登录_springCloud单点登录_SpringCloud系统_springcloud eureka单点登录"这个项目中,我们将重点探讨如何在SpringCloud环境中实现单点登录(Single Sign-On,简称SSO)。 单点登录是一种...
这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构。它提供...
本文将重点介绍Spring2.0与Spring2.5及以上版本之间的区别,特别是关于它们的jar包组成及其使用场景。 #### Spring2.0与Spring2.5版本间的jar包区别 在Spring2.0时代,为了方便开发者快速构建应用程序,提供了一个...
在"Spring2+实例"中,我们重点关注的是spring-framework-2.0-with-dependencies.zip这个压缩包。这个文件包含了Spring框架2.0的完整资源,包括所有必需的库和依赖项,使得开发者可以直接开始进行项目开发而无需单独...
而在4.3版本中,重点依旧是测试方面的改进。 ### 核心技术 #### IoC容器 Spring IoC容器是Spring Framework的核心,负责实例化、配置和组装对象,以及管理对象间的依赖关系。在容器中,Bean是主要的管理对象。...
java重点面试题-Spring+Spring MVC+Spring Boot+MySQL