- 浏览: 92234 次
- 性别:
- 来自: 杭州
最新评论
-
dylan0514sina.cn:
youjianbo_han_87 写道dylan0514sin ...
方法缓存 -
youjianbo_han_87:
dylan0514sina.cn 写道youjianbo_ha ...
方法缓存 -
dylan0514sina.cn:
youjianbo_han_87 写道缓存方法有意义吗,方法+ ...
方法缓存 -
youjianbo_han_87:
缓存方法有意义吗,方法+调用从缓存中取内容的方法 换成 方法+ ...
方法缓存 -
dylan0514sina.cn:
Shen.Yiyang 写道剔除策略只有方法执行的时候指定ke ...
方法缓存
文章列表
Hibernate SessionFactory的创建在LocalSessionFactoryBean afterpropertySet执行时进行
运行时配置configTime***Holder设置的资源将由对应实现Hibernate接口的工厂方法在创建工厂时使用,创建完成之后configTime***Holder置空。
configTimeDataSourceHolder设置的数据源将由org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider使用
configTimeTransactionManager ...
编写接口
/*
* Copyright (c) 2008 Skyon Technology Ltd.
* All rights reserved.
*
* project: ims
* create: 2013-6-7
* cvs: $Id: $
*/
package com.skyon.cl.test;
/**
* TODO (2013-6-7 上午10:27:23) 请添加 A 类的注释。
* @author dylan0514
* @version $Revision: 1.1 $
*/
public interface A {
...
AbstractBeanFactory是IOC容器实现的骨架,当从Spring容器获取Bean时,调用的正是getBean方法。实现步骤如下
检查单例缓存
在父工厂中查找
初始化当前bean依赖的beans(depends-on)
根据scope使用不同的创建方式bean
检查获取的bean是FactoryBean类型还是普通bean
可能的类型转换
单例缓存
spring中单例理解不同与设计模式中的单例,前者指一个容器对应类只有一个实例,后者指一个classloader有一个实例。Spring bean工厂将scope="sin ...
Tomcat中时启动会校验项目的/WEB-INF/lib下的所有jar包,jar文件是一种带有Manifest清单文件的压缩包,Manifest文件是jar规范提供用来提供依赖扩展的,比如该jar包是一个包含main方法的可执行的Jar包,那么manifest清单文件中就包含Main-class:xxxx;同时如果改jar需要依赖其他的jar包,则清单文件中就多了一行Class-path:x1.jar x2.jar.tomcat引擎需要读取改清单文件已加载x1.jar x2.jar
初步断定:应该是解压缩读取manifest文件出的错
肯定是JAR包有问题
执行JAR与清单文件中的x1 ...
JAVA中查找类或资源文件
- 博客分类:
- any
根据语义的不同,查找类或资源的方式通常不太一样;Servlet语义下查找的类或资源必须在WEB根目录下;在URLClassloader语义下查找的类或资源在指定的URL中;
而java.io.File查找的类或资源特定于本地文件系统,File实例文件和目录路径名的抽象表示形式,并不能说明文件系统就存在对应的目录或文件,可以用exist方法断定文件是否存在;构造File实例的时候,需要传入代表路径的字符串,正如getPath的含义一样只是返回这个字符串本身;如果字符串表达的是相对路径,则使用它和文件系统交互之前,必须加入前缀,这里指工作目录由System.getProperty(&qu ...
在一次请求内绑定一个Session到线程,防止Web资源加载时的懒加载问题。HibernateTransactionManager或JTATransactionManager将会使用此Session。非事务运行时(并非事务挂起)也可使用。
该类的flushMode设置为Manual,由于该类一般为事务层提供Session,当Session同步到事务,对于非只读事务(definition指定)由HibernateTransactionManager或SessionFactoryUtils改变flushMode为Auto。如果不在Spring提供事务环境下使用此类,则合理的设置flushMode
...
继承HibernateAccessor功能,在代理到Hibernate操作之前尚未发现Session则创建绑定,否则使用线程已绑定的Session;操作中出现错误可开启exceptionConversionEnabled以转换异常;操作结束后,Session由自己创建则关闭或延迟关闭,否则回复FlushMode
/*
* Copyright 2002-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
...
HibernateAccessor是HibernateInterceptor和HibernateTemplate父类,它主要提供Hibernate刷新机制的转换和Hibernate异常体系到Spring异常体系的转换
刷新机制
Spring定义刷新选项
FLUSH_NEVER
FLUSH_AUTO
FLUSH_EAGER
FLUSH_COMMIT
FLUSH_ALWAYS
Hibernate定义刷新选项
MANUAL(Flush_NEVER过时)
COMMIT
AUTO
ALWAYS
在S ...
SessionFactoryUtils支持JTATransactionManager和HibernateTransactionManager;被Spring内部HibernateTemplate或HibernateInterceptor使用,同时可由应用代码调用。它提供了事务或非事务性Session获取,释放,Hibernate异常转换,事务超时等功能。下面介绍主要方法
doGetSession
如果SessionHolder中存在Session,则检测sessionHolder是否事务同步,否则注册同步;
否则创建新的Session,注册同步并绑定线程
同步
...
DEFAULT_KEY 存储Threadlocal Session(可能由OpenSessionInViewFilter/Interceptor获取,也可能由Spring激活时SessionFactoryUtils直接或间接调用获取)
sessionMap 除了存放DEFAULT_KEY指定线程绑定的Session,还有hibernate配置中指定的 TransactionManager事务激活时的对应的javax.transaction.Transaction的Session,当Spring同步不处于激活状态且有JTA激活事务时创建
previousFlushMode Spring管理的 ...
提供一些静态方法用于管理可能参与事务的JDBC连接。JDBCTemplate
或JDBCDaoSupport自动使用它,而且在DataSourceTransactionManager或JTATransactionManager,hibernateTransactionManager中支持。
DataSourceTransactionManager中
DataSourceTransactionManager.DataSourceTransactionObject在事务开始时存储连接,事务完结后使用它获取连接以回复只读,隔离级别及释放连接。在事务挂起和回复时只是解除或重新绑定Holde ...
继承了ResourceHolderSupport功能,包装了一个JDBC连接,提供了创建和释放保存点支持,它有以下属性
connectionHandle JDO规范连接处理器,用户获取和释放JDBC连接,标准实现中释放方法不作任何处理。当事务挂起时,可能将connectionHandle置空
currentConnection Connection缓存,在第一次请求和释放之间,返回的就是它
transactionActive JDBC事务状态没有JTA中javax.transaction.Status那么丰富,用这个标志事务已经激活
savepointsSupported 底层JDBC ...
JDBCContext
- 博客分类:
- hibernate3.x api
成员变量
owner:session
connectionManager:管理连接
isTransactionCallbackRegistered:是否注册回调
hibernateTransaction:JTATransaction或CMTTransaction事例
重要方法
borrowConnection由session.connection调用
public Connection borrowConnection() {
return connectionManager.borrowConnection();
}
connection由JDBCTr ...
AbstractPlatformTransactionManager是Spring提供事务支持的核心处理类,它的功能可大致划分
处理传播行为
处理挂起与恢复
检查只读标志,处理回滚
处理回调
了解事务传播行为
PROPAGATION_REQUIRED 支持已存在的事务或开启新 ...
资源Holder父类。它有以下几个属性
synchronizedWithTransaction 当Holder被注册到同步之后,为true,否则为false;同步处理完成之后,synchronizedWithTransaction被重新设置为false
rollbackOnly 设置事务只读模式,JDBC并没有提供像JTA UserTransaction 的setRollbackOnly方法,所以在此增加这个属性标志底层事务回滚,Spring里叫GlobalRollbackOnly。当Spring事务提交时,会检查!shouldCommitOnGlobalRollbackOnly和G ...