spring依赖注入的时候创建的list是ArrayList,创建的map是LinkedHashMap
ioc的factorybean和beanfactory的区别
- factorybean:实现FactoryBean接口,是创建用户自定义对象的工具,规定用户自定义创建对象的过程
- beanfactory:只是个容器
IOC:
<bean
id=""
class=""
scope=""
lazy-init=""
init-method=""
name=""
factory-bean=""
factory-method=""
parent=""
abstract="">
autowire=""
</bean>
- 指定bean的id,一般规范为类名第一个字母小写
- bean的全限定类名
- singleton(default):单例模式,在spring容器初始化时创建
- prototype:多例模式,每次调用spring都会创建一个新的对象
- false:spring初始化的时候就创建对象(默认是false)
- true:当需要使用bean时,才会创建对象
- methodName:创建时执行bean中的该方法(只能执行无参的方法)
- name:设置要创建自己对象的工厂类
- methodName:工厂类中具体的方法创建对象
- parentName:指定父类bean的类名,用于继承其方法和属性
-
false:该类不是抽象类
-
true:该类是抽像类,不能创建对象,但可以被指定为父类
- byType:对象类型的属性通过类型自动装配
- byName:对象类型的属性通过名字自动装配
DI:
<bean id="" class="">
<property name="" value=""></property>
<property name="name">
<value>shiruntao</value>
</property>
<array>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</array>
<property name="list">
<list>
<value>nibaba</value>
<value>slakfjlk</value>
</list>
</property>
<property name="map">
<map>
<entry>
<key><value>1</value></key>
<value>fasf</value>
</entry>
<entry>
<key><value>2</value></key>
<value>afafa</value>
</entry>
</map>
</property>
<property name="test" ref = "test">
</property>
<constructor-arg name="" value=""></constructor-arg>
</bean>
<bean id = "test" class="com.lanou.test.bean.Test"></bean>
</beans>
- name:bean中的属性名
- value:要注入对应属性的值(Spring会自动将字符串转换为数字)
- name:bean中构造函数对应的参数名
- value:要注入对应属性的值
- 向数组中添加的元素值
- 向List集合中添加的元素值
- entry:代表一个key-value对要被注入
- key:map中一个元素的key值
- value:map中一个元素的value值
- ref:向bean中对象属性赋值