文档章节

spring beans 的类型

zvc888
 zvc888
发布于 2015/02/09 17:08
字数 935
阅读 64
收藏 0

1. singleton   单例模式(默认)只有一个共享一个单例bean管理的实例,以及所有bean的请求id或bean定义id匹配的结果在一个特定的Spring容器返回的bean实例。    换句话说,当你定义一个bean定义和作用域作为一个单例,Spring的IoC容器创建一个实例对象定义的bean定义。这单一实例存储在缓存这样的单例bean,和所有后续请求和引用bean返回缓存的对象。

<bean id="accountService" class="com.foo.DefaultAccountService"/> <!-- the following is equivalent, though redundant (singleton scope is the default) --> <bean id="accountService" class="com.foo.DefaultAccountService" scope="singleton"/>

2.prototype 原型模式  非单体,原型bean部署的范围结果在每次创建一个新的bean实例请求特定bean。即bean注入另一个bean或者你请求通过容器的getBean()方法调用。一般来说,使用原型范围为所有有状态bean和无状态的单例范围bean。    下面的图表说明了春天原型范围。数据访问对象(DAO)不是通常配置为原型,因为典型的刀不持有任何会话状态;它只是作者更容易重用的核心单例图。有点像new。

<bean id="accountService" class="com.foo.DefaultAccountService" scope="prototype"/>

3.request ,session,global session ,application都需要在web.xml添加

servlet2.5

<web-app> ... <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> ... </web-app>

servlet 3.0

<web-app> ... <filter> <filter-name>requestContextFilter</filter-name> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class> </filter> <filter-mapping> <filter-name>requestContextFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ... </web-app>
4  request  Spring容器创建一个新的LoginAction bean的实例通过使用LoginAction bean定义为每一个HTTP请求。也就是说,loginAction bean是在HTTP请求级别范围。可以更改内部状态的实例创建尽可能多的你想要的,因为其他实例创建同一loginAction bean定义不会看到这些变化状态;他们特定的单个请求。当请求处理完成,请求作用域的bean是丢弃。
<bean id="loginAction" class="com.foo.LoginAction" scope="request"/>

5 session  Spring容器创建一个新的UserPreferences bean的实例通过使用UserPreferences bean定义一个HTTP会话的生命周期内。换句话说,userPreferences bean有效范围在HTTP会话级别。会与会话bean,您可以更改的内部状态的实例创建尽可能多的你想要的,知道其他HTTP会话实例也使用相同的实例创建userPreferences bean定义看不到这些变化状态,因为他们是特定于一个单独的HTTP会话。当HTTP会话最终丢弃,局限于特定的HTTP会话bean是也丢弃。

<bean id="userPreferences" class="com.foo.UserPreferences" scope="session"/>

6 global 全球会话范围类似于标准的HTTP会话范围(如上所述),并只适用于在基于portlet的web应用程序的上下文中。portlet规范定义了一个全球会话的概念,是构成所有portlet之间共享单个portlet的web应用程序。豆子在全球会话范围定义的作用域(或约束)全球portlet会话的生命周期。    如果你写一个标准的基于servlet的web应用程序,您需要定义一个或多个bean全球会话范围,使用标准的HTTP会话范围,没有错误。

<bean id="userPreferences" class="com.foo.UserPreferences" scope="globalSession"/>

 7 application Spring容器创建一个新的AppPreferences bean的实例通过使用AppPreferences bean定义一次整个web应用程序。即appPreferences bean在ServletContext水平范围,存储作为一个常规ServletContext属性。这有点类似弹簧单例bean,但在两个重要方面不同:它是一个单例每ServletContext中,不是每个春天ApplicationContext(或可能有几个在任何给定的web应用程序),它实际上是暴露,因此可见ServletContext属性。

 

<bean id="appPreferences" class="com.foo.AppPreferences" scope="application"/>

© 著作权归作者所有

共有 人打赏支持
zvc888
粉丝 4
博文 107
码字总数 17062
作品 0
深圳
程序员
企业级Spring最佳实践 - 应用程序架构

Sections 应用领域(Application Domain) 应用层(Application Layers) 控制器 Beans Service Beans Repository Beans 数据传输 Beans Conversion Beans Further Reading Social Me 应用领......

阿影
2013/12/09
0
0
Spring aop 前置通知、后置通知、返回通知、 异常通知 、后置通知

Spring AOP定义切面 Ⅰ 首先介绍一下写Spring Aop思路 一、首先在项目中加入aop所需要的jar aopalliance-1.0.jar aspectjweaver-1.6.11.jar commons-logging-1.1.1.jar spring-aop-3.0.5.REL......

薄暮凉年
2015/07/26
0
0
Spring 注解注入详解

1.@Autowired注解(不推荐使用,建议使用@Resource) @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个b...

wpb王鹏博
2015/06/08
0
0
spring学习4-bean配置文件

上篇简单介绍了一下bean配置文件注入简单的属性和复杂一点的类注入,今天说一下其他类型的注入。 spring中提供配置Bean有三种实例化的方式 类构造器实例化 静态工厂方法实例化 实例工厂方法实...

大嘴吃鸡腿
2014/03/17
0
0
spring ioc注解 IOC

@Autowired 1、Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。 Java代...

五大三粗
2015/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
8
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
4
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部