spring框架中的Ioc与DI

1.Spring中的Ioc操作:
  将对象的创建交由Spring框架进行管理。
  IoC操作分为:IoC配置文件方式和IoC的注解方式。
  Ioc入门案例:
  《1》.导入jar包
  在这里插入图片描述
 《2》创建实体类
 在这里插入图片描述
 《3》配置Spring config.xml文件
 在这里插入图片描述
 《4》测试
 在这里插入图片描述
 在这里插入图片描述
 在这里插入图片描述 2.Spring的Bean管理
 Bean实例化的方式
  在Spring中通过配置文件创建对象。
  Bean实例化三种方式实现:
  (1)使用类的无参数构造创建,如:
  <bean id="user"class=“com.wm103.ioc.User”>
  (2)使用静态工厂创建
  如果一个Bean不能通过new直接实例化,而是通过工厂类的某个静态方法创建的,需要把的class属性配置为工厂类。如:
<bean id="user"class=“com.wm103.ioc.UserFactry” factorymethod=“createInstance”>
(3)使用实例工厂创建
 如果一个Bean不能通过new直接实例化,而是通过工厂类的某个实例方法创建的,需要先配置工厂的标签,然后在需要创建的对象的bean标签的factory-bean属性配置为工厂类对象,factory-method属性配置为产生实例的方法。
<bean
id="userFactory"class=“com.wm103.ioc.UserFactory”

<bean id="user"factorybean="userFactory"factorymethod=“createInstance”>

Bean标签的常用属性
(1)id属性:用于指定配置对象的名称,不能包含特殊符号。
(2)class属性:创建对象所在类的全路径。
(3)name属性:功能同id属性一致。但是在name属性值中可以包含特殊符号。
(4)scope属性

singleton:默认值,单例
单例模式下,在程序下只有一个实例。非单态模式下,每次请求该Bean,都会生成一个新的对象。
prototype:多例
request:创建对象后将对象存放到request域
session:创建对象后将对象存放到session域
globalSession:创建对象后将对象存放到globalSession域
属性注入
属性注入指创建对象时,向类对象的属性设置属性值。
在Spring框架中支持set方法注入和有参构造函数注入,即创建对象后通过set方法设置属性或采用有参构造函数创建对象并初始化属性。
使用有参构造函数注入属性
 案例:
  Student.java 提供有参的构造方法
在这里插入图片描述
bean的配置:
在这里插入图片描述
创建Student对象进行测试:
在这里插入图片描述
使用set方法注入属性
  案例:
  Teacher.java 提供属性的set方法
  在这里插入图片描述
  bean的配置:
  在这里插入图片描述
  创建Teacher对象进行测试:
  在这里插入图片描述
  注入对象类型属性
 以三层架构中的service层和dao层为例,为了让service层使用dao层的类创建的对象,需要将dao对象注入到service层类中。具体实现过程中如下:
(1)创建service类、dao层接口、dao类,如下:
UserService.java
在这里插入图片描述
UserDao.java
在这里插入图片描述
UserDaoImpl.java

(2)在配置文件中注入关系,如下:
在这里插入图片描述
(3)创建测试方法进行测试,如下:
在这里插入图片描述
p名称空间注入属性
之前提到了一种set方法的属性注入方式,这里将介绍另一种属性注入的方式,名为 p名称空间注入。对比set方法的属性注入方式,核心配置文件配置修改如下:
在这里插入图片描述
注入复杂类型属性
 对象注入复杂类型属性,如数组、List、Map、Properties。
  案例:
  PropertyDemo.java
在这里插入图片描述
bean配置文件,内容如下:
在这里插入图片描述
 创建PropertyDemo对象进行测试:
在这里插入图片描述
IoC和DI的区别
  IoC,控制反转,将传统的对象创建流程转变为交由框架进行创建和管理。在Spring中,对象的创建交给Spring进行配置。它包括依赖注入。
  DI,依赖注入,向类的属性设置值。
  IoC与DI的关系:依赖注入不能单独存在,需要在IoC基础之上完成操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值