文档章节

spring beans 的类型

zvc888
 zvc888
发布于 2015/02/09 17:08
字数 935
阅读 64
收藏 0
点赞 0
评论 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
博文 101
码字总数 17062
作品 0
深圳
程序员
SpringBoot bean注入失败

使用springboot+zookeeper+dubbo开发分布式应用 provider.xml

ysjO ⋅ 04/23 ⋅ 0

Spring中Beans的自动装配概述

以下内容引用自http://wiki.jikexueyuan.com/project/spring/beans-autowiring.html: 在之前的做法上会参照这样的顺序:1、使用元素声明bean,2、并使用XML配置文件中的和元素注入。但现在可...

easonjim ⋅ 2017/05/22 ⋅ 0

Spring中使用构造函数实现Beans自动装配

以下内容引用自http://wiki.jikexueyuan.com/project/spring/beans-auto-wiring/spring-autowiring-by-Constructor.html: 此模式与byType类似,但它适用于构造函数参数。Spring容器查看在X...

easonjim ⋅ 2017/05/23 ⋅ 0

springmvc 和mybatis的整合

spring-dao.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cont......

zhaomb ⋅ 2016/10/07 ⋅ 0

RabbitMQ学习之spring配置文件rabbit标签的使用

下面我们通过一个实例看一下rabbit的使用。 1.实现一个消息监听器ReceiveMessageListener.java [java] view plain copy package org.springframework.amqp.core; /** * Listener interface ......

onedotdot ⋅ 05/12 ⋅ 0

java,求大神解救一下,配置文件都是对的。

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot creat......

MrZZHHGG ⋅ 05/21 ⋅ 0

java问题,求大神解救一下小弟,谢谢好心人!非常感谢

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot creat......

MrZZHHGG ⋅ 05/21 ⋅ 0

SSM整合(二):配置文件编写

把项目建好了,下一步干嘛? step2: 面对空荡荡的项目,首先当然是想着导入这三个框架啦,就要进行基础配置了。 先放上我的配置文件结构图: 因为是学习的缘故,我把每个项目都分开来了,当然...

wzlhlhhh ⋅ 05/11 ⋅ 0

Spring笔记2---DI

工厂注入: <bean id="xxx" class="x.x.x" factory-method="methodName" /> Bean的作用域 <bean id="xxx" class="x.x.x" scope="scope" /> scope="prototype"---每次都产生一个新的实例 scop......

强子哥哥 ⋅ 2015/01/10 ⋅ 0

MAVEN项目使用JDBC连接GP数据库(greenplum)

第一步 下载greenplum.jar 下载地址 http://download.csdn.net/download/enterings/10039723?web=web 第二步 在maven中手动添加本地jar包 在 cmd命令行中 运行 mvn install:install-file -Df......

梦魂清风 ⋅ 03/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 51分钟前 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部