前面分享了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依赖注入
如果大家发现有什么知识点错误的欢迎大家指出来