- 浏览: 540869 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
【转载】CSS圆角按钮(一) -
saiarmuluo:
不错,支持。
java log4j日志 写入数据库 -
springdata_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Freemarker 使用 -
zlbdexiaohao:
棒棒的
flex ToolTip汇总 -
hw_128:
demo的代码的,能不能发一下,谢谢 qq257515270 ...
java log4j日志 写入数据库
一般都知道spring2.x bean的作用域
Bean作用域
singleton |
在每个Spring IoC容器中一个bean定义对应一个对象实例。 |
prototype |
一个bean定义对应多个对象实例。 |
request |
在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例,它们依据某个bean定义创建而成。该作用域仅在基于web的Spring |
session |
在一个HTTP |
global session |
在一个全局的HTTP |
看完官网文档明白了,spring2.xbean的作用域可以自定义作用域,甚至重新定义现有的作用域(不提倡这么做,而且你不能覆盖内置的singleton
和prototype
作用域)。
spring bean 自定义作用域
作用域由接口org.springframework.beans.factory.config.Scope
定义。
要将你自己的自定义作用域集成到Spring容器中,需要实现该接口。它本身非常简单,只有两个方法,分别用于底层存储机制获取和删除对象。自定义作用域可能超出了本参考手册的讨论范围,但你可以参考一下Spring提供的Scope
实现,以便于去如何着手编写自己的Scope实现。
在实现一个或多个自定义Scope
并测试通过之后,接下来就是如何让Spring容器识别你的新作用域。ConfigurableBeanFactory
接口声明了给Spring容器注册新Scope
的主要方法。(大部分随Spring一起发布的BeanFactory
具体实现类都实现了该接口);
该接口的主要方法如下所示:
package org.springframework.beans.factory.config; import org.springframework.beans.factory.ObjectFactory; public interface Scope { public abstract Object get(String s, ObjectFactory objectfactory); public abstract Object remove(String s); public abstract void registerDestructionCallback(String s, Runnable runnable); public abstract String getConversationId(); }
1.实现 Scope 接口
package com.myscope; import java.util.HashMap; import java.util.Map; import org.springframework.beans.BeansException; import org.springframework.beans.factory.ObjectFactory; public class ThreadScope implements org.springframework.beans.factory.config.Scope{ private final ThreadLocal<Object> threadScope = new ThreadLocal<Object>() { protected Object initialValue() { return new HashMap<String, Object>(); } }; public Object get(String s, ObjectFactory objectfactory) throws BeansException{ Map<String, Object> scope = (Map<String, Object>) threadScope.get(); Object object = scope.get(s); if (object == null) { object = objectfactory.getObject(); scope.put(s, object); } return object; } public Object remove(String name) { Map<String, Object> scope = (Map<String, Object>) threadScope.get(); return scope.remove(name); } public String getConversationId() { return null; } public Object resolveContextualObject(String key) { return null; } public void registerDestructionCallback(String name, Runnable callback) { } }
2.通过工厂注册
applicationContext.getBeanFactory().registerScope("myScope", scope);
然后你就可以像下面这样创建与自定义Scope
的作用域规则相吻合的bean定义了:
<bean id="..." class="..." scope="myScope"/>
完整xml配置:
<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer"> <property name="scopes"> <map> <entry key="thread" value="com.myscope.ThreadScope"/> </map> </property> </bean> <bean id="bar" class="com.demo1" scope="thread"> <property name="name" value="Rick"/> <aop:scoped-proxy/> </bean>
或者:
<bean id="myScope" class="com.myscope.ThreadScope"/> <bean id="customerScope" class="org.springframework.beans.factory.config.CustomScopeConfigurer"> <property name="scopes"> <map> <entry key="myScope"> <bean class="myScope"/> </entry> </map> </property> </bean> <bean id="usesScope" class="com.demo" scope="myScope"/>
发表评论
-
【转】java中volatile关键字的含义
2013-05-12 16:06 959用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A ... -
java 收集
2012-10-22 09:16 0OpenSessionInViewFilter在查询完之后不提 ... -
java连接sql时候,获取表格各列属性
2012-10-19 18:09 0import java.sql.Connection; ... -
【转载】log4j 日志大小
2012-03-23 19:31 10580今天群里一个哥们问一 ... -
【转】java获取jar文件位置
2012-02-16 21:04 1985网络转载 在编程的时候如果在工程中无意中导入多个同样的jar ... -
java 逐位运算符
2012-01-22 16:53 4498运算符归类: 一元运算符:逻辑运算符(!),非运算符( ... -
hibernate hql
2011-12-15 20:05 0hibernate -hql 1.hql中最简单的查询 f ... -
Hibernate初探(二)
2011-12-15 16:32 38hql 关联查询fetch hql code: from Te ... -
hibernate 复合主键
2011-11-01 19:30 1287hibernate 复合主键 在实体中可以定义一个嵌入式组件( ... -
28234行的java 类文件
2011-08-29 16:04 894有图为证:28234行的java 类文件 各位有没有???见过 ... -
递归显示文件夹下文件
2011-08-10 14:43 879public static void main(String[ ... -
java.lang.UnsupportedClassVersionError异常解决办法
2011-06-14 14:32 1494出现错误的原因: 是因为我们使用高版本的JDK编译的Java ... -
内部类修改外部类属性
2011-06-10 16:55 5656public class Test { public Str ... -
java log4j日志 写入数据库
2011-06-01 20:57 11237因一个群朋友log4j日志 ... -
eclipse改图片
2011-05-14 08:44 1196例如:eclipse目录在 D:\rd\eclipse3.3 ... -
【转载】<s:doubleselect>标签的使用
2011-01-05 08:49 5454本文装载自:http://karidyang.iteye.co ... -
spirng2.x-入门
2011-01-04 09:50 918Spring 2.5 中除了提供 @Component 注释外 ... -
自定义 StringUtil 处理类
2011-01-04 09:41 1151isNumber //判读是不是数字 isDate//判读 ... -
Hibernate学习笔记--Criteria Query
2011-01-04 09:20 9121Criteria Query通过面向对 ... -
struts2 页面国际化
2010-12-29 15:24 1066//输出配置文件中的属性<s:text name=&qu ...
相关推荐
3.4.4. 自定义作用域 3.5. 定制bean特性 3.5.1. Lifecycle接口 3.5.1.1. 初始化回调 3.5.1.2. 析构回调 3.5.2. 了解自己 3.5.2.1. BeanFactoryAware 3.5.2.2. BeanNameAware 3.6. bean定义的继承 3.7. 容器扩展点 ...
3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 ...
3.4.4. 自定义作用域 3.5. 定制bean特性 3.5.1. Lifecycle接口 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据...
3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 ...
3.4.4. 自定义作用域 3.5. 定制bean特性 3.5.1. Lifecycle接口 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据...
4.8.3 Web应用环境相关的Bean作用域 4.8.4 作用域依赖问题 4.9 FactoryBean 4.10 基于注解的配置 4.10.1 使用注解定义Bean 4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命...
2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 2.7.1 问题 72 2.7.2 解决方案 72 2.7.3 工作原理 72 2.8 用Java Config简化XML配置 ...
2.6 设置Bean作用域 69 2.6.1 问题 69 2.6.2 解决方案 69 2.6.3 工作原理 70 2.7 自定义Bean初始化和析构 72 2.7.1 问题 72 2.7.2 解决方案 72 2.7.3 工作原理 72 2.8 用Java Config简化XML配置 ...
4.8.3 Web应用环境相关的Bean作用域 4.8.4 作用域依赖问题 4.9 FactoryBean 4.10 基于注解的配置 4.10.1 使用注解定义Bean 4.10.2 使用注解配置信息启动Spring容器 4.10.3 自动装配Bean 4.10.4 Bean作用范围及生命...
29.4.5 Spring Bean配置 226 29.4.6 LDAP属性和定制的UserDetails 227 29.5 Active Directory认证 228 29.5.1 ActiveDirectoryLdapAuthenticationProvider 228 活动目录错误代码 229 30. JSP标签库 230 30.1声明...
全文大纲1、Spring1.1、简介1.2、优点1.3、组成(七大模块)1.4、拓展2、...Spring配置5.1、别名5.2、Bean配置5.3、import6、依赖注入6.1、构造器注入6.2、set方式注入6.3、其他方式注入6.4、Bean的作用域7、Bean的自动...
测试作用域依赖 ii. 35.2. 测试Spring应用 iii. 35.3. 测试Spring Boot应用 i. 35.3.1. 使用Spock测试Spring Boot应用 iv. 35.4. 测试工具 i. 35.4.1. ConfigFileApplicationContextInitializer ii. 35.4.2. ...
6.1.2 控制器和作用域 6.1.3 模型和视图 6.1.4 重定向和链 6.1.5 控制器拦截器 6.1.6 数据绑定 6.1.7 XML和JSON响应 6.1.8 上传文件 6.1.9 命令对象 6.2 Groovy Server Pages 6.2.1 GSP基础 6.2.1.1 变量和作用域 ...
6.2.4 bean的作用域与生命周期 374 6.2.5 基于xml方式的bean装配 376 6.2.6 基于annotation方式的bean装配 381 6.2.7 基于xml方式的aop实现 386 6.2.8 基于annotation方式的aop实现 391 6.3 spring 2.5事务管理...
96.spring 支持几种 bean 的作用域? 97.spring 自动装配 bean 有哪些方式? 98.spring 事务实现方式有哪些? 99.说一下 spring 的事务隔离? 100.说一下 spring mvc 运行流程? 101.spring mvc 有哪些组件? 102.@...
7.3.3 理解flash作用域 7.4 创建模型(model) 7.5 数据绑定和类型转换 7.5.1 用领域模型(domaincmodel)进行数据绑定 7.5.2 使用binddata方法进行数据绑定 7.6 用重定向控制流程 ...
Bean在进入该作用域时自动激活,而退出时自动失效。 @FlowDefinition是一个类级别的注释,它允许通过FlowBuilder API定义流。 最后,引入了新的EL对象#{flowScope},用于流的本地存储。该对象对应 facesContext....
8.2.2 Message Driven Bean的概念和 作用 303 8.2.3 实体和JPA 303 8.3 开发无状态的Session Bean 304 8.3.1 开发远程调用的无状态 Session Bean 304 8.3.2 开发本地调用的无状态 Session Bean 311 8.4 发布Session ...
3. 设置Bean作用域 265 4. 为Bean配置集合(List,Set,Map) 266 5. 调用构造方法创建Bean 271 6. 指定Bean引用与自动装配 276 (二) AOP 278 1. AOP简介 278 (三) Spring 3.X 新特性(JavaConfig,SpEL)简介 285 1. ...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...