Spring 核心思想之一IOC/DI:创建控制对象的主权反转,获取对象的方式反转
IOC:负责创建对象及其生命周期控和关系控制。以单例模式来管理创建对象的生命周期,由原先的应用程序主动创建对象变为被动接手注入的对象,由IOC进行对象的实例化
、装载、销毁。
IOC控制对象:控制外部资源的获取(包括对象、文件等等)----应用获取获取用.getBean()方法
反转:依赖获取对象被反转,Spring容器帮我们查找注入依赖对象,对象被动的接受依赖对象
实现方法:applicationContext.xml文件的配置将所有的实现类交由IOC容器进行配置
<!-- beans的标签属性default-lazy-init:true/false全部设置为延迟或非延迟-->
<beans>
<!-- bean的标签属性:
id:
class:
lazy-init 延迟实例化bean对象,
init-method:初始化方法
destory-method:销毁方法
depend-on:依赖某实例对象
parent:继承父类
ref:bean的id-->
<bean id="iocService" class="com.javalxj.spring.ioc.service.impl.iocServiceimpl" lazy-init="true">
<!-- 依赖注入 -->
<property name="password" value="123456"></property>
<property name="num" value="123456"></property>
<property name="iocDao" ref="iocDao"></property>
</bean>
<bean id="date" class="java.util.Date"></bean>
<!-- 逻辑层调用数据层
1、将数据层交由bean -->
<bean id="iocdao" class="com.javalxj.spring.ioc.dao.impl.iocDaoImpl"></bean>
</beans>
依赖注入----组件之间的依赖关系由容器运行时期决定。由容器的动态的某个依赖关系注入到组件中去
目的:提升组件重用频率,为系统搭建一个灵活可扩展的平台
依赖关系:应用程序依赖IOC容器获取外部资源
谁输入谁:IOC容器注入了应用程序的某个对象-----应用程序依赖的对象
注入了什么::注入了某个对象所需要的外部资源对象
实现方法:在Bean标签中配置property标签,name为类中元素,如果元素类中为基本数据类性用value属性直接赋值
如果为一个封装类则用ref标签指向所要用到的ID值的类配置完成后完成配置文件的属性初始化
<!-- 依赖注入 -->
<property name="password" value="123456"></property>name---指的是属性名
<property name="num" value="123456"></property>
<property name="iocDao" ref="iocDao"></property>
优点:高内聚低耦合,单例模式防止内存溢出,避免频繁操作
创建对象的防止:一\new二、java反射机制三、