Spring配置bean属性
2012-05-02 16:32
351 查看
声明:这是转载的
方便自己学习用!
来源地址:http://wjuan222-gmail-com.iteye.com/blog/760827
id 属性:命名 bean
id 在当前 ioc 容器中必须唯一。
class 属性:指定类名
大多数情况下,容器将直接通过反射调用指定类的构造器来创建 bean ,在极少情况下,容器将调用类的静态工厂方法来创建 bean 实例, class 属性将用来指定实际具有静态工厂方法的类
factory-method 属性:指定工厂方法
指定的是工厂方法
scope 属性:设置 bean 作用域
singleton : spring ioc 容器中只会存在一个共享的 bean 实例,每次请求返回 bean 的同一实例
prototype :每次对该 bean 请求时都会创建一个新的 bean 实例。根据经验:对于所有有状态的 bean 应该使用prototype 作用域,而对无状态的 bean 则应该使用 singletom 作用域
request :在一次 HTTP 请求中,一个 bean 定义对应一个实例。
session :在一个 HTTP session 中,一个 bean 定义对应一个实例。
global session :在一个全局的 HTTP session 中,一个 bean 定义对应一个实例。
depends-on 属性:指定依赖 bean
表示初始化 bean 之前强制一个或者多个 bean 被初始化。
lazy-int 属性:延迟初始化 bean
在默认的情况下, applicationContext 会在系统启动时实例化所有的 singleton bean ,但是可以通过lazy-init 将 bean 设置为延迟实例化。
init-method 属性:初始化回调
在实例化一个 bean 时,可能需要进行相关的初始化工作。使用 init-method 属性指定一个普通的初始化方法。
destroy-method 属性:析构回调
在 bean 被释放回收时,可以通过 destroy-method 属性来指定一个析构函数。
parent 属性:继承 bean
1 . 直接使用 value 属性来表示
Xml代码
1. 直接使用value属性来表示
<property name="message" value="ddd" />
2. 使用<value>子元素来表示
<property name="message">
<value>World</value>
</property>
3. 使用<ref>子元素指向另一个bean,这种方式将会在部署时验证所被引用的bean是否存在。而第二种在实际实例化时才会被发现。
<property name="problem" ref="Problem" />
或者:<property name="problem" />
<ref name="Problem"/>
</property>
4. 如果被引用的bean在同一个xml文件中,且bean名字就是bean id,那么可以使用local属性,此属性允许xml解析器在解析xml文件时来对引用的bean进行验证。
<property name="problem" />
<ref local="Problem"/>
</property>
5. 集合元素<list>,<set>,<map>,<props>的应用
<bean id="CollectionTest" class="" >
<property name="propertiesInfo">
<props>
<prop key="key1">key1</prop>
<prop key="key2">key2</prop>
</props>
</property>
<property name="listInfo">
<list>
<value>list1</value>
<value>list2</value>
</list>
</property>
<property name="mapInfo">
<map>
<entry key=” map1”>
<value>map1 info</value>
</entry>
<entry>
<key>
<value>map2</value>
</key>
<value>map2 info</value>
</entry>
</map>
</property>
<property name="setInfo">
<set>
<value>set1</value>
<value>set1</value>
</set>
</property>
</bean>
6. <bean>继承
子<bean>继承父<bean>的配置信息。如果子<bean>提供了父<bean>的配置信息,子<bean>的配置信息将覆盖父<bean>的配置信息。父<bean>一般声明为 abstract=”true”,表示这个<bean>不实例化为一个对应的bean。
<bean id="abstractDao" abstract="true">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<bean id="userDao" parent="abstractDao" class="com.demo.spring.dao.user.impl.UserDaoImpl" />
Resource
Resource template = ctx.getResource("some/resource/path/myTemplate.txt");
or
Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt");
ClassPathXmlApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/appContext.xml");
FileSystemXmlApplicationContext
ApplicationContext ctx = new FileSystemXmlApplicationContext("conf/appContext.xml");
方便自己学习用!
来源地址:http://wjuan222-gmail-com.iteye.com/blog/760827
配置 <bean> 的属性
属性名 | 作用 | 可选值 | 默认值 | 是否必选 |
Id | 命名 bean | | | 必选 |
Class | 实例化的类 | | | 必选 |
Factory-method | 指定工厂方法 | | | 可选 |
Factory-bean | 指定工厂类 | | | 可选 |
Scope | Bean 的作用域 | Singleton | prototype | request | session | global session | Singleton | 可选 |
Lazy-int | 延迟初始化 bean | True|false|default | Default | 可选 |
Init-method | 初始化回调 | | | 可选 |
Destroy-method | 析构回调 | | | 可选 |
Parent | 继承 bean | | | 可选 |
id 属性:命名 bean
id 在当前 ioc 容器中必须唯一。
class 属性:指定类名
大多数情况下,容器将直接通过反射调用指定类的构造器来创建 bean ,在极少情况下,容器将调用类的静态工厂方法来创建 bean 实例, class 属性将用来指定实际具有静态工厂方法的类
factory-method 属性:指定工厂方法
指定的是工厂方法
scope 属性:设置 bean 作用域
singleton : spring ioc 容器中只会存在一个共享的 bean 实例,每次请求返回 bean 的同一实例
prototype :每次对该 bean 请求时都会创建一个新的 bean 实例。根据经验:对于所有有状态的 bean 应该使用prototype 作用域,而对无状态的 bean 则应该使用 singletom 作用域
request :在一次 HTTP 请求中,一个 bean 定义对应一个实例。
session :在一个 HTTP session 中,一个 bean 定义对应一个实例。
global session :在一个全局的 HTTP session 中,一个 bean 定义对应一个实例。
depends-on 属性:指定依赖 bean
表示初始化 bean 之前强制一个或者多个 bean 被初始化。
lazy-int 属性:延迟初始化 bean
在默认的情况下, applicationContext 会在系统启动时实例化所有的 singleton bean ,但是可以通过lazy-init 将 bean 设置为延迟实例化。
init-method 属性:初始化回调
在实例化一个 bean 时,可能需要进行相关的初始化工作。使用 init-method 属性指定一个普通的初始化方法。
destroy-method 属性:析构回调
在 bean 被释放回收时,可以通过 destroy-method 属性来指定一个析构函数。
parent 属性:继承 bean
配置 <bean> 的子元素
通过 <property> 实现1 . 直接使用 value 属性来表示
Xml代码
1. 直接使用value属性来表示
<property name="message" value="ddd" />
2. 使用<value>子元素来表示
<property name="message">
<value>World</value>
</property>
3. 使用<ref>子元素指向另一个bean,这种方式将会在部署时验证所被引用的bean是否存在。而第二种在实际实例化时才会被发现。
<property name="problem" ref="Problem" />
或者:<property name="problem" />
<ref name="Problem"/>
</property>
4. 如果被引用的bean在同一个xml文件中,且bean名字就是bean id,那么可以使用local属性,此属性允许xml解析器在解析xml文件时来对引用的bean进行验证。
<property name="problem" />
<ref local="Problem"/>
</property>
5. 集合元素<list>,<set>,<map>,<props>的应用
<bean id="CollectionTest" class="" >
<property name="propertiesInfo">
<props>
<prop key="key1">key1</prop>
<prop key="key2">key2</prop>
</props>
</property>
<property name="listInfo">
<list>
<value>list1</value>
<value>list2</value>
</list>
</property>
<property name="mapInfo">
<map>
<entry key=” map1”>
<value>map1 info</value>
</entry>
<entry>
<key>
<value>map2</value>
</key>
<value>map2 info</value>
</entry>
</map>
</property>
<property name="setInfo">
<set>
<value>set1</value>
<value>set1</value>
</set>
</property>
</bean>
6. <bean>继承
子<bean>继承父<bean>的配置信息。如果子<bean>提供了父<bean>的配置信息,子<bean>的配置信息将覆盖父<bean>的配置信息。父<bean>一般声明为 abstract=”true”,表示这个<bean>不实例化为一个对应的bean。
<bean id="abstractDao" abstract="true">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<bean id="userDao" parent="abstractDao" class="com.demo.spring.dao.user.impl.UserDaoImpl" />
Resource
Resource template = ctx.getResource("some/resource/path/myTemplate.txt");
or
Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt");
ClassPathXmlApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("conf/appContext.xml");
FileSystemXmlApplicationContext
ApplicationContext ctx = new FileSystemXmlApplicationContext("conf/appContext.xml");
相关文章推荐
- spring管理属性配置文件properties——使用PropertiesFactoryBean
- Spring ApplicationContext.xml配置的12个技巧和Bean属性说明
- spring 3 bean配置--注入属性配置细节(1)
- spring_1-4,IOC&DI概述_配置 Bean_属性配置细节
- Spring技术内幕5——利用property-placeholder节点配置Bean属性源码解析
- Spring 自定义属性编辑(CustomEditorConfigurer)和类型转换器(ConversionServiceFactoryBean)一起配置问题
- Spring4深入理解IOC&DI02----Bean配置--自动装配、bean之间的继承与依赖、使用外部属性文件
- 简化Spring的xml文件配置-自动装配Bean属性
- spring-bean属性配置解析
- Spring配置中<bean>的id和name属性区分
- [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间
- Spring4----使用注解方式配置bean和bean的属性
- Spring配置中<bean>的id和name属性区分
- spring 4 bean配置--注入属性配置细节(2)
- Spring记录之Bean属性配置、依赖关系及生命周期
- Spring 配置文件中 Bean 的 property 属性使用示例
- Spring的bean属性配置
- 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer
- spring管理属性配置文件properties——使用PropertiesFactoryBean
- Spring配置中<bean>的id和name属性区分