1,构造器注入:通过在bean定义中指定构造器参数。
2.setter注入。
Bean容器注入依赖资源依赖的资源可以使bean,文件,数据常量。由容器负责组装。
1.构造器注入:
<bean>
<contructor-arg='' index='' value=''/>
</bean>
构造器通过参数索引、参数类型注入:
1)参数索引注入,constructor-arg index="1" value="1"/>来指定注入的依赖,其中“index”表示索引,从0开始,即第一个参数索引为0,“value”来指定注入的常量值
2)参数类型注入,<constructor-arg type="java.lang.String" value="Hello World!"/>”来指定注入的依赖,其中“type”表示需要匹配的参数类型,可以是基本类型也可以是其他类型
3)参数名进行注入,使用标签“<constructor-arg name="message" value="Hello World!"/>”来指定注入的依赖,其中“name”表示需要匹配的参数名字,“value”来指定注入的常量值
1)常量值
简写:<constructor-arg index="0" value="常量"/>
全写:<constructor-arg index="0"><value>常量</value></constructor-arg>
2)引用
简写:<constructor-arg index="0" ref="引用"/>
全写:<constructor-arg index="0"><ref bean="引用"/></constructor-arg>
JavaBean:是本质就是一个POJO类,但具有一下限制:
该类必须要有公共的无参构造器
属性为private访问级别,不建议public,如private String message;
属性必要时通过一组setter(修改器)和getter(访问器)方法来访问;
setter方法,以“set” 开头,后跟首字母大写的属性名,如“setMesssage”,简单属性一般只有一个方法参数,方法返回值通常为“void”;
getter方法,一般属性以“get”开头,对于boolean类型一般以“is”开头,后跟首字母大写的属性名,如“getMesssage”,“isOk”;
2.setter注入:
注入bean:
<property name="id"><idref local="bean2"/></property>
<property name="id"><idref bean="bean2"/></property>
1)常量值
简写:<property name="message" value="常量"/>
全写:<property name="message"><value>常量</value></ property>
2)引用
简写:<property name="message" ref="引用"/>
全写:<property name="message"><ref bean="引用"/></ property>
3)数组:<array>没有简写形式
4)列表:<list>没有简写形式
5)集合:<set>没有简写形式
6)字典
简写:<map>
<entry key="键常量" value="值常量"/>
<entry key-ref="键引用" value-ref="值引用"/>
</map>
全写:<map>
<entry><key><value>键常量</value></key><value>值常量</value></entry>
<entry><key><ref bean="键引用"/></key><ref bean="值引用"/></entry>
</map>
7)Properties:没有简写形式
-----------------------------------------------------------------------------------------------------------------------------
延迟初始化Bean:惰性初始化,不提前初始化Bean,而是只有在真正使用时才创建及初始化。配置方式:在<bean>标签上指定 “lazy-init” 属性值为“true”
延迟初始化的Bean通常会在第一次使用时被初始化;或者在被非延迟初始化Bean作为依赖对象注入时在会随着初始化该Bean时被初始化
spring 自动装配:
由spring自动依赖对象。@Autowired注解方式,自动装配减少构造器注入和setter注入配置,通过配置<bean>标签的“autowire”属性来改变自动装配方式
default:表示使用默认的自动装配,默认的自动装配需要在<beans>标签中使用default-autowire属性指定,其支持“no”、“byName ”、“byType”、“constructor”四种自动装配