欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring 学习笔记 IOC&DI

程序员文章站 2022-06-22 16:10:52
...

一.IOC

IOC—Inversion of Control,即“控制反转”,是一种设计思想。在Java开发中,Ioc意味着对象的产生由容器控制。

DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。是实现IOC的方式。

1.DI方式

1.1 set()方法:

<bean id="student" class="com.spring.test.di.model.runningman">
	<property name="name" value="haha"></property>
	<property name="age" value="35"></property>
    <property name="car" ref="car"></property>
</bean>

1.2 构造器方式:

<bean id="student" class="com.spring.test.di.model.runnningman">
	<constructor-arg index="0" value="haha"></constructor-arg>
	<constructor-arg index="1" value="37"></constructor-arg>
</bean>

1.3  p标签:

<bean id="student" class="com.spring.test.di.model.runningman" p:name="haha" p:age="37">

1.4 other

Scope:singleton默认单例;prototype

懒加载:lazy-init="true"

include-filter:指定需要包含的包

exclude-filter:指定需要排除的包

2.核心组建

Spring 学习笔记 IOC&DI

IoC容器的两个核心接口BeanFactory和ApplicationContext两个接口表示容器;

从接口BeanFactory到HierarchicalBeanFactory,再到ConfigurableBeanFactory,这是一条主要的BeanFactory设计路径。其定义了基本的Ioc容器规范。在这个接口定义中,包括了getBean()这样的Ioc容器的 基本方法,定义了BeanFactory就是最简单的Ioc容器的基本功能。

以ApplicationContext作为核心的接口设计,这里涉及的主要接口设计有,从BeanFactory到ListableBeanFactory,再到ApplicationContext,再到我们常用的WebApplicationContext或者ConfigurableApplicationContext接口。我们常用的应用基本都是org.framework.context ConfigurableApplicationContext实现。在BeanFactory简单Ioc容器的基础上添加了许多对高级容器的特性支持功能