- spring配置中属性也可以用标签代替例如value属性可以用<value></value>标签代替
- value中的特殊字符用 <![CDATA[字面值]]>
- property标签的ref属性建立bean之间的引用关系
- 可以在property标签内建bean标签表示内部bean,不能被外部引用
- null值(null值不赋值默认也是null)使用方法标签内加<null/>标签
级联赋值配置(比如 A{B b;} )同样需要set方法
class B{
String name;
}
class A{
B b;
}
类中的集合属性用list标签配置(例如List)的配置<bean id="id名称" class="类路径">
<property name="属性名(集合变量名称)">
<list>
<ref bean="类路径"/>
</list>
</property>
</bean>(Map类型)和list差不多,唯一需要注意的是Map有key和value所以对应<entry></entry>标签
<map>
<entry key="" value-ref=""></entry>
<entry key="" value-ref=""></entry>
</map>
配置properties的属性值<property name="name" value="spring">
<props key="属性名">
属性值
</props>
<props key="属性名2">
属性值2
</props>
</property>
配置独立集合bean,使用基本的集合标签定义集合时,不能将集合作为独立的bean定义,导致其他bean无法引用该集合此时通过配置独立集合bean即可解决问题
首先导入命名空间eclipse中如下图框出来的部分
下面的勾选实际上就是在beans标签上加上属性xmlns:util="截图中地址"
然后就有<util:list>标签提示,如下规则在这个命名空间中添加列表<util:list id="hellos">
<bean id="hello1" class="com.taotao.beans.HelloWorld"></bean>
<bean id="hello2" class="com.taotao.beans.HelloWorld"></bean>
<bean id="hello3" class="com.taotao.beans.HelloWorld"></bean>
</util:list>接着就可以使用命名空间内的bean和list
<bean id="id名称" class="类路径">
<property name="hellos" ref="hellos引用前面命名空间的bean"></property>
</bean>
p命名空间为bean属性赋值,需要先导入p命名空间 在beans标签上加属性 xmlns:p="http://www.springframework.org/schema/p",其实就是将xmlns复制因为不能重名所以加:p然后修改最后一个参数beans改成p即可,下面就能使用p来操作
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="id名称" class="类路径">
<property name="hellos" p:hellos-ref="hellos引用前面命名空间的bean"></property>
</bean>
工厂bean,意思就是通过bean标签注入的是一个工厂bean,返回的类型不是bean属性class的值
注入的这个bean需要实现FactoryBean接口,通过重写的方法getObject方法得到返回类型的实例
bean的作用域,主要目的用于控制bean是单例还是多实例模式,通过bean标签设置scope属性值如果是singleton则是单例,如果是prototype则是多实例的bean,spring默认是单例的bean,意思没错需要时返回都是同一个如果设置为多实例,每次返回都是不同的对象地址
bean生命周期
单独在IOC的生命周期
一、通过构造方法创建bean(默认无参)
二、为bean属性赋值(调用set方法)
三、调用bean的初始化方法需要通过在bean属性上加init-method="方法名"才行
四、通过ioc获取bean
五、容器关闭时销毁bean, 通过bean标签属性destroy-method="销毁bean时调用的方法名"
完整的生命生命周期有七步
一、通过构造方法创建bean(默认无参)
二、为bean属性赋值(调用set方法)
三、把bean实例传递bean后置处理器的初始化之前方法
四、调用bean的初始化方法需要通过在bean属性上加init-method="方法名"才行
五、把bean实例传递bean后缀处理器的初始化之后方法
六、通过ioc获取bean
七、容器关闭时销毁bean, 通过bean标签属性destroy-method="销毁bean时调用的方法名"
自动装配,通过在bean上加属性autowired="byName"或者"byType"则如果对象如果有使用到其它bean则会自动将该bean装配到当前bean标签的实例上
引入外部properties文件或者yml文件等文件。通过在beans标签加命名空间一样的方式,xmlns:context="http://www.springframework.org/schema/context" 然后通过然后就可以直接使用propertioes文件定义的属性,通过spel表达式获取及 ${ } 或者 #{ }<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
spring中配置bean属性的细节
原创
©著作权归作者所有:来自51CTO博客作者诗水人间的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Spring的自动注入小细节
Spring的自动注入小细节
spring 自动注入 byName byType -
spring 配置bean属性默认值 在spring中配置bean的id属性
<beans> Spring配置文件的根元素,包含一个或多个bean元素。<bean> 用于告诉Spring容器一个类以及它是如何配置的。 class属性:Java Bean 类名(全路经)。 id属性:Java Bean在BeanFactory中的唯一标识,代码中通过BeanFac
spring 配置bean属性默认值 bean spring constructor properties