spriing中设值注入和构造注入

前面分享了springIOC的概念 和Bean标签的作用

对于spring容器都在说是创建对象 管理对象的容器 , 那么在创建一个对象之后, 如何快速的给这个对象的属性赋值的呢?
常见的 分为两点

1.设值注入
设值注入,本质上还是通过setter方法传入被调用者的实例,这种注入方法简单直观,早spring的依赖注入中大量使用
①简单类型的设值注入

<!--简单类型的设值注入-->
    <bean id="MyStudent" class="com.baidu,ba01.Student">
        <property name="name" value="zhangsan"></property>
        <property name="age" value="30"></property>
    </bean>
    <!--这个方式需要你的类文件中必须有set方法-->

② 引用类型的设值注入

<!--引用类型的设值注入-->
    <bean id="Myschool" class="com.bjpowernode.ba02.School">
        <property name="name" value="beijingxiaoxue"></property>
        <property name="address" value="daxinqu"></property>
    </bean>
    
<!--通过ref属性将myschool注入进来 	-->
<bean id="Mystudent2" class="com.bjpowernode.ba02.Student">
        <property name="name" value="zhangsan"></property>
        <property name="age" value="30"></property>
        <property name="school" ref="Myschool"></property>
    </bean>
<!--将ref作为标签将myschool注入进来-->
<bean id="Mystudent3" class="com.bjpowernode.ba02.Student">
    <property name="name" value="lisi"></property>
    <property name="age" value="20"></property>
    <property name="school">
       <ref bean="Myschool"></ref>
    </property>
</bean>

2.构造注入
构造注入是指,在构造器调用者实例的同时,完成被调用者的实例化,即使用构造器设置依赖关系

    <bean id="myStudent" class="com.bjpowernode.ba03.Student">
        <constructor-arg name="myname" value="李四" />
        <constructor-arg name="myschool" ref="mySchool" />
        <constructor-arg name="myage" value="30" />
    </bean>

那么除上面两种方式之外 对于引用类型属性还有一种自动注入的方式
byName : 根据名称自动注入
byType : 根据类型自动注入
在这里插入图片描述
在这里插入图片描述
定义一个测试类 ,创建spring容器 ,获取对象

在这里插入图片描述
二、byType方式自动注入
在这里插入图片描述
在这里插入图片描述
要求,配置文件中被调用者Bean的class属性的指定的类要与代码中被调用者Bean类的引用类型保持同源关系,且只能有一个,多余一个程序就不知道到底是哪个了、
在这里插入图片描述
新建一个测试类,创建Spring容器,获取对象
在这里插入图片描述
三、为多个应用指定Spring配置文件
在实际应用里,随着应用规模的增加,系统中 Bean 数量也大量增加,导致配置文件变
得非常庞大、臃肿。为了避免这种情况的产生,提高配置文件的可读性与可维护性,可以将
Spring 配置文件分解成多个配置文件。
在这里插入图片描述
要求父配置文件名不能满足*所能匹配的格式,否则出现递归包含
在这里插入图片描述
当然以上谈到的Bean的一些常见用法,相对来说并不方便 项目中使用注解的方式是最常见的 , 后面会跟大家一起探讨注解DI依赖注入

如果大家发现有什么知识点错误的欢迎大家指出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值