springIOC

Spring-IOC

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

一、IOC实现方式

1、XML配置

    <bean id="hello" class="com.pyt.pojo.Hello">
        <property name="str" value="spring"/>
    </bean>

property属性中,value注入具体的值,基本数据类型;ref引用spring容器中创建好的对象。

2、注解

3、新版本的spring可以零配置实现IOC

小结

IoC就是对象由Spring来创建,管理,装配!

二、IoC创建对象的方式

1、使用无参构造创建对象(默认方法)


<bean id="user" class="com.pyt.pojo.User">
        <property name="name" value="pyt" />
        <property name="age" value="18"/>
    </bean>

2、使用有参构造创建对象

<constructor-arg index="" name="" type="" ref=""  value=""></constructor-arg>

constructor-arg 标签中共有5个参数:
index是带参构造函数中参数的下标,从0开始;
type是注入属性值的类型,是一个明确的类型;引用类型要写全限定名
name是参数名(属性名);
value注入属性的值;
ref引用创建好的对象(bean);
以上参数可以通过以下三种方式完成有参构造函数的对象创建:

  1. 下标赋值
<bean id="user" class="com.pyt.pojo.User">
        <constructor-arg index="0" value="pyt"></constructor-arg>
        <constructor-arg index="1" value="18" ></constructor-arg>
    </bean>
  1. 属性名赋值
<bean id="user" class="com.pyt.pojo.User">
        <constructor-arg name="name" value="pyt"></constructor-arg>
        <constructor-arg name="age" value="18"></constructor-arg>
    </bean>

3.按类型赋值(不推荐)

<bean id="user" class="com.pyt.pojo.User">
        <constructor-arg type="java.lang.String" value="pyt"></constructor-arg>
        <constructor-arg type="int" value="18"></constructor-arg>
    </bean>

注:在配置文件加载的时候,容器中管理的对象就已经初始化了。

三、Spring配置

1、别名

<!--    为bean取别名,通过别名也可以获取到该对象-->
<alias name="user" alias="uAlias" />

2、Bean配置

id:bean的唯一标识
class:bean对象对应的全限定名
name:也是别名,可以同时取多个别名,逗号隔开

 <bean id="user" class="com.pyt.pojo.User" name="u1,u2,u3">
        <property name="name" value="pyt" />
        <property name="age" value="18"/>
    </bean>

bean生命周期

(1)通过构造器创建 bean 实例(无参数构造)
(2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)
(3)调用 bean 的初始化的方法(需要进行配置初始化的方法)
(4)bean 可以使用了(对象获取到了)
(5)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)

3、import

一般用于团队开发使用,可将多个配置文件导入合并为一个。

<!--    引入beans.xml-->
<import resource="beans.xml" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值