spring bean 的作用域之间有什么区别?

spring容器中的bean可以分为五个范围。所有范围的名称都是说明的,

1.singleton:这种bean范围是默认的,这种范围确保不管接受到多个请求,每个容器中有一个bean的实例,单利模式由bean factory自身来维护。

2.Protype:原先通过范围与单例范围相反,为每一个bean请求提供一个实例。

3.request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成之后,bean会失效并被垃圾回收器回收。

4.session:与请求范围类似,确保每个session中的bean的实例在session过期后bean会随之消失。

5.global-session:global-session和portlet公用全局存储变量的话,那么这全局变量需要存储在global-session中。

什么spring inner beans?

在spring框架中,无论何时bean被使用时,当今被调用了一个属性,一个明智的做法是将这个bean声明的内部bean。内部bean可用于setter注入“属性”和构造参数注入“构造参数”来实现。

比如在我们的应用程序中,一个Customer类引用了person类我们的要做的是创建一个Person的实例,然后在Customer内部使用。

public class Customer{
private Person person;
//Setters and Getters
}
public class Person{
private String name;
private String address;
private int age;
//Setters and Getters
}
内部bean的声明方式如下:
<bean id="CustomerBean" class="com.howtodoinjava.common.Customer">
<property name="person">
<!-- This is inner bean -->
<bean class="com.howtodoinjava.common.Person">
<property name="name" value="lokesh" />
<property name="address" value="India" />
<property name="age" value="34" />
</bean>
</property>
</bean>

spring框架中的单例beans是线程安全吗?

spring裤架并没有单例bean进行任何多线程的封装和处理,关于单列bean的线程安全和并发问题需要开发着自己去搞定。但是实际上,大部分的spring  bean并没有可变状态,所以在某种程度上说spring单例bean是线程安全带的。如果多线程状态的话,就需要自行保证线程安全。

请举例说明如何在spring中注入以个javacollection

spring提供四种集合类的配置元素:

<list>:该标签用来配置可重复的list值

<set>:该标签用来装配没有重复的set值

<map>:该标签可用来注入键和值可以为任何类型的键值对

<props>:该标签支持注入键和值都是字符串类型。

下面看一下具体的例子:
<beans>
<!-- Definition for javaCollection -->
<bean id="javaCollection" class="com.howtodoinjava.JavaCollection">
<!-- java.util.List -->
<property name="customList">
<list>
<value>INDIA</value>
<value>Pakistan</value>
<value>USA</value>
<value>UK</value>
</list>
</property> <!-- java.util.Set -->
<property name="customSet">
<set>
<value>INDIA</value>
<value>Pakistan</value>
<value>USA</value>
<value>UK</value>
</set>
</property>
<!-- java.util.Map -->
<property name="customMap">
<map>
<entry key="1" value="INDIA"/>
<entry key="2" value="Pakistan"/>
<entry key="3" value="USA"/>
<entry key="4" value="UK"/>
</map>
</property>
<!-- java.util.Properties -->
<property name="customProperies">
<props>
<prop key="admin">admin@nospam.com</prop>
<prop key="support">support@nospam.com</prop>
</props>
</property> </bean>
</beans>

如何向Spring Bean中注入一个Java.util.Properties?

第一种方法是使用如下面代码所示的<props> 标签:

<bean id="adminUser" class="com.howtodoinjava.common.Customer">

    <!-- java.util.Properties -->

    <property name="emails">

        <props>

            <prop key="admin">admin@nospam.com</prop>

            <prop key="support">support@nospam.com</prop>

        </props>

    </property>

</bean>

也可用”util:”命名空间来从properties文件中创建出一个propertiesbean,然后利用setter方法注入bean的引用。

最新文章

  1. (Hibernate进阶)Hibernate映射——一对多关联映射(七)
  2. SQL优化快速入门
  3. iOS 蓝牙开发(二)iOS 连接外设的代码实现(转)
  4. 多线程中的synchronized
  5. Windows 8.1 去掉库的方法
  6. mysql数据库去重语句和不同表之间列的复制语句
  7. 【转】 xcode中常用快捷键图文并茂解释
  8. 函数lock_rec_has_expl
  9. innodb 变量
  10. NULL &amp; nil &amp; Nil &amp; NSNULL的区别
  11. Android ListView A~Z快速索引(改进版)
  12. java 多线程学习(一)
  13. android:ViewPager动画摘要
  14. hdu1034
  15. css float 布局
  16. [python标准库]Pickle模块
  17. 【PHP】linux+php5.1.6+mysql5.0.2+apache2.0.55安装配置说明(转)
  18. spring框架总结(04)----介绍的是Spring中的JDBC模板
  19. 通过该源码修改vim颜色和pudb调试器的代码颜色的方法
  20. weblogic.xml 精妙设置

热门文章

  1. JS权威指南读书笔记(三)
  2. Django学习笔记 (一) 开发环境配置
  3. 关于Vue中,父组件获取子组件的数据(子组件调用父组件函数)的方法
  4. iOS开发 CGAffineTransform 让图片旋转, 旋转后获得图片旋转的角度
  5. iOS testflight 使用说明
  6. 如何实现高性能的IO及其原理?
  7. java包装类的自动装箱及缓存
  8. 使用华为云+GitHub搭建自己的博客
  9. SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量
  10. Hibernate初探之单表映射——创建Hibernate的配置文件