| Blog信息 |  
| 
 blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7646455 建立时间:2006年5月29日   |   
 
  
 
  |    | 
  
   
   
| 
  [Spring]spring2.0 自定义Scope 软件技术 
lhwork 发表于 2007/1/4 22:35:53   |  
	在spring 的以前版本中,只是支持singleton,prototype两种类型, 在2.0中作了很大的改进,增加了RequestScope,和SessionScope两种范围。当然也支持自定义Scope 下面简单介绍一下,spring2.0是如何支持自定义Scope的。 Scope接口,需要实现的接口,主要的方法: Object get(String name, ObjectFactory objectFactory)Object remove(String name)void registerDestructionCallback(String name, Runnable callback)get 和remove这是最常用的方法,registerDestructionCallback用于回收对象时,可以异步调用其它操作。 下面简单定义一个Scope对象:   Scope scope = new Scope() {   &n |    
 |   
   
| 
  [Spring]关于spring 2.0自定义xml 标记 (二 如何实现) 软件技术 
lhwork 发表于 2006/12/30 10:13:32   |  
看了spring test 用例,其实实现这一功能还算比较简单,主要分以下的步骤,具体的实例可以去参考spring 自带的testcase
首先定义相关xsd文件,用于验证相应的行为:    主要增加了4个自定义元素和1个属性:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <xsd:schema xmlns="http://www.springframework.org/schema/beans/test"                      &nb |    
 |   
   
| 
  [Spring]关于spring 2.0自定义xml 标记 (一 主要的相关类) 软件技术 
lhwork 发表于 2006/12/30 10:13:06   |  
在spring 2.0 中,增加了自定义xml标记这一重大的功能。下面主要看一下spring 2.0实现这一功能的主要相关类:
   NamespaceHandlerResolver(接口)     由DefaultBeanDefinitionDocumentReader使用,用于定位NamespaceHandler,指定特定的命名空间uri
     实现类:    DefaultNamespaceHandlerResolver        通过map 保存所有的对应关系    默认使用spring.handlers文件来保存所有的handlers    可以定义其他的location 如:
     String location = "org/springframework/beans/factory/xml |    
 |   
   
| 
  [Spring]spring 2.0 关于事务的变化(主要为声明性事务) 软件技术 
lhwork 发表于 2006/12/30 10:12:13   |  
在 1.x中,spring 的事务声明,一直是采用动态代理bean 实现的,也就是采用ProxyFactoryBean或者子类TransactionProxyFactoryBean来实现的
  考虑下面的例子:(用1.x实现) <bean id="myTxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">   &nbs |    
 |   
   
| 
  [Spring]spring aop 2.0 编程(三) 软件技术 
lhwork 发表于 2006/12/30 10:10:18   |  
前面这是讲了许多的概念,下面以一个例子来说明: 一个很好理解的aop 例子,也就是日志服务。 先从aop第一种方式来实现,也就是xml配置方式 先创建基本的日志类: public class Logger {
    private static Log log = LogFactory.getLog(Logger.class);
    public void entry(String message) {         log.info(message);     } } 这里只是简单的一个方法,当然实际情况可能不同。 由于xml配置需要一个方面的实现bean 所以创建一个简单的bean : public class LogBean {
    private Logger  |    
 |   
   
   
   
 
 
  |