Spring--IOC总结

IOC本质

控制反转ioC 是一种 设计思想 DI(依赖注入) 是实现IoC的一种方法 使用面向对象编程 对象的创建与对象间的依赖关系完全硬
编码在程序中 对象的创建由程序自己控制 控制反转后将对象的创建转移给第三方 个人认为所谓的反转就是 获得依赖对象的方式反转

Spring 容器在初始化时 先读取配置文件  根据配置文件或元数据与组织对象存入容器中 
 程序使用时 再从IoC容器中去除需要的对象

采用XML方式配置Bean的时候 Bean的定义信息是和实现分离的 而采用注解的方式 可以把二者合为一体 Bean的定义信息

直接以注解的形式定义再实现类中 从而达到了零配置的目的

控制反转是一种通过描述(XML或注解) 并通过第三方生产获取特定对象的方式  再Spring中实现控制反转的是IoC容器

其实现方法是依赖注入

对象是由spring创建的

反转 : 程序本身不创建对象的 而变成被动的接收对象

依赖注入 就是利用set方法来进行注入的

IOC是一种编程思想 由主动的编程编程被动的接收

对象有SPring 创建 管理 分配

再配置文件加载的时候 容器中管理的对象就已经被初始化了

Spring容器中 所有的对象再被第一次获取的时候 就被实例化了

即所有的对象对

user == user1 输出true;

使用无参构造方法 创建对象 默认!

使用有参构造创建对象

下表赋值
		<bean  id="user" class="类的全路径">
			<constructor-arg  index="0" value="对应的赋值内容">
		</bean>
	类型赋值
		<bean  id="user" class="类的全路径">
			<constructor-arg  type="类型名"   value="对应的赋值内容">
		</bean>
	直接通过参数名来设置
		<bean>
			<constructor-arg   name="参数名" vlaue="赋值的内容">
		</bean>

ioC入门案例 制作步骤

  1. 导入spring坐标(5.1.9.release)

  2. 编写业务层与表现层

  3. 建立spring配置文件

  4. 配置所需资源(Service)为spring控制的资源 表现层(App) 通过spring获取资源

bean
定义spring中的资源 受此标签定义的资源将受到Spring控制

格式

	<bean>
		<bean/>
	</bean>

基本属性

	<bean  id = "headId" name ="beanNam1, beanName2"  class="ClassName"></bean>
	id bean的名称  通过id获取bean
	class  bean的类型
	name bean的名称 可以通过name值获取bean 用于多人配合给bean起别名

bean属性scope
定义bean作用的范围

取值
singleton: 设定创建出的对象保存在spring容器中 是一个单例的对象
prototype 设定创建出的对象保存阿紫spring容器中 是一个非单例的对象
request session application websocket 设定创建出的对象放置在web容器对应的位置

在单例情况下 在加载spring容器的时候 就会进行创建对象

bean生命周期
init-method destory-method

属性
bean标签
定义bean对象在初始化或销毁时完成的工作

<bean  init-method ="init" destory-method="destory"><bean/>
取值 bean对应的类中对应的具体方法名

当spring配置的时非单例对象的时候 该对象不归spring容器管理

init-method 与 destory-method 用于控制bean的生命周期

bean对象创建方式
factory-bean factory-method
定义bean对象创建方式 使用实例工厂的形成创建bean 兼容早期遗留系统的升级工作

取值 工厂bean中用于获取对象的实例方法名
注意事项
	使用工厂创建bean首先需要将实例工厂配置bean  交由spring进行管理
	factory-bean 是实例工厂的bean

DI
IOC
控制翻转 Spring 反向控制应用程序所需要使用的外部资源
DI
依赖注入 应用程序运行依赖的资源由于Spring为其提供 资源进入应用程序的方式称为注入

应用程序 引用spring提供的资源

ioc模式
			等待Spring容器提供资源  DI
ioc容器
			主控权在spring手中ioC

ioc配置

set注入(主流)
使用set方法的形式为bean提供资源

<bean>
	<property />
</bean>

基本属性

<property name = "propertyName" value="propertyValue" ref ="beanId" />

name 对应bean中的属性名 要求该属性必须提供可以访问的set方法
value 设定非引用类型属性对应的值 不能与ref同时使用
ref 设定引用类型对应bean的id 不能与value同时使用

在使用引用类型的时候用ref 在其他方式引用的时候 用value

构造器注入

construct-arg
使用构造方法的形式bean提供资源 兼容早期遗留系统的升级工作

<bean>
	<cpmsyructor-arg />
</bean>

基本属性

name 对应bean的构造方法所携带的参数名
value 设定非引用类型构造方法参数对应的值 不能与ref同时使用

一个bean可以有多个construct-arg标签

集合类型数据注入

array   list  set  map  props

注入集合数据类型属性

<property>
		<list><list/>
</property>

properties文件
外部文件导入
Spring 提供了读取外部properties文件的机制 使用读取到的数据bean属性赋值

操作步骤

准备外部properties文件
开启context命名空间支持
	xmlns : context ="http://www.springframework.org/schema/contxt"
加载指定的properties文件
	<context : property-placeholder location="classpath : filename. properties">
使用加载的数据
	<property  name="propertyName" value="${propertiesName}" />

如果需要加载所有的properties文件 可以使用 *,properties 表示加载所有的properties文件
读取数据使用${propertiesName} 格式进行 其中 propertieName 值1properties 文件的属性名

ioC配置
import
在当前配置文件中导入其他配置文件中的项


基本属性

resource 加载配置文件名

spring容器加载多个配置文件
new ClassPathXmlApplicationContext(“config.xml” , config2.xml);

Spring 容器中的bean定义冲突
同id的bean 后定义的覆盖先定义的
导入配置文件可以理解为将导入的配置文件复制粘贴到对应位置
导入配置文件的顺序与位置不同可能会导致最终程序运行结果不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值