《Spring 3.X 企业应用开发实战》摘记 【IOC】

简介:

一、IOC的概念

IOC(Inverse of Control )控制反转,原本自身控制自身的权利转移到了其他身上。IOC是一个“协议”,或者理论。需要涉及到代码解耦设计模式等一些问题考量。

其中包含了两层内容:控制 + 反转。意思明了


后来,IOC由于是种理论需要实战 — 就出现了依赖注入

DI(Dependency Injection)依赖注入即调用类让某一接口的实现类的依赖关系有第三方(容器或者协作类)注入,以移除调用类对某一接口实现类的依赖。这里就是将实战的武功秘籍传授了。实现类与类的依赖关系。

IOC容器还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。


二、注入的方式

依赖注入有三种注入方式:

1、通过构造函数注入

2、通过属性注入(常用方式)

3、接口注入


三、如何实现其注入呢?

那就涉及到相关的知识点,比如反射类装载器 和 反射机制)、资源访问机制

a. 反射Reflect


b. 资源装载器

资源,考虑资源的来源。可能是本地的File(jar、zip等),网络的URLFTP等)。Spring提供的Resource接口比JDK访问资源API更强大个好用。其实就是一种VFS的特例吧。

1. 读取配置文件时,Ant风格资源地址支持3中匹配符:

?:匹配一个字符

*:任意一个字符

**:匹配多层路径

Resource 与 ResourceLoader UML图:

image

BeanFactory类继承体系:

image

ApplicationContext主要实现类:

a. ClassPathXmlApplicationContext 从类路径加载配置文件

b. FileSystemXmlApplicationContext 从文件系统加载配置文件

Spring用于启动WebApplicationContext的Servlet和Web容器监听器

org.springframework.web.servlet.DispatcherServlet
org.springframework.web.context.ContextLoaderListener

待续。。。

相关文章
|
2月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
1月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
169 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
1月前
|
XML Java 测试技术
spring复习01,IOC的思想和第一个spring程序helloWorld
Spring框架中IOC(控制反转)的思想和实现,通过一个简单的例子展示了如何通过IOC容器管理对象依赖,从而提高代码的灵活性和可维护性。
spring复习01,IOC的思想和第一个spring程序helloWorld
|
21天前
|
Java Spring 容器
Spring IOC、AOP与事务管理底层原理及源码解析
【10月更文挑战第1天】Spring框架以其强大的控制反转(IOC)和面向切面编程(AOP)功能,成为Java企业级开发中的首选框架。本文将深入探讨Spring IOC和AOP的底层原理,并通过源码解析来揭示其实现机制。同时,我们还将探讨Spring事务管理的核心原理,并给出相应的源码示例。
74 9
|
18天前
|
存储 开发框架 Java
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
文章详细介绍了Spring、IOC、DI的概念和关系,解释了控制反转(IOC)和依赖注入(DI)的原理,并提供了IOC的代码示例,阐述了Spring框架作为IOC容器的应用。
17 0
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
|
27天前
|
缓存 Java Spring
手写Spring Ioc 循环依赖底层源码剖析
在Spring框架中,IoC(控制反转)是一个核心特性,它通过依赖注入(DI)实现了对象间的解耦。然而,在实际开发中,循环依赖是一个常见的问题。
33 4
|
5天前
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
15 0
|
1月前
|
XML Java 开发者
经典面试---spring IOC容器的核心实现原理
作为一名拥有十年研发经验的工程师,对Spring框架尤其是其IOC(Inversion of Control,控制反转)容器的核心实现原理有着深入的理解。
80 3
|
13天前
|
XML Java 数据格式
Spring的IOC和AOP
Spring的IOC和AOP
32 0
|
1月前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit