- 浏览: 72089 次
- 性别:
- 来自: 北京
最新评论
-
daquan198163:
如果有一天你的service被别人拿去复用,而且没有配置AOP ...
HibernateDaoSupport中的getSession()方法 -
pml346680914:
很清晰,有值 得学的东西
Java中获取年,月,日,时间 -
lifeiniao526:
高手,真强啊。向你学习一下啊。
ClassPathXmlApplicationContext和FileSystemXmlApplic -
JAVA小痴:
很不错哦,我刚碰到这个!!![[/
Request中getContextPath、getServletPath的区别 -
JAVA小痴:
color=darkred]很不错哦,我刚碰到这个!!![[/ ...
Request中getContextPath、getServletPath的区别
文章列表
2. 关于Thread的误解
这个误解相当常见。
我们说一个方法是否是线程安全的,判断的标准只有一个,
这个方法是否访问了 可以写的“成员变量”。(所谓的state)
注意,只有两个条件:
(1)可以改变的 (2)成员变量
如果访问了可以写的“成员变量”,那么这个方法不是 线程安全的。
如果没有访问 可以写的“成员变量”,那么这个方法是 线程安全的。
方法的线程安全特性和传进来的参数毫无关系。
举个例子说明,为什么和参数毫无关系。
代码
public class A {
// 这个方法没有访问任何成员变量,本身是线程安全的。
public voi ...
- 2008-11-04 10:26
- 浏览 774
- 评论(0)
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
String param = filterConfig.getInitParameter("packages");
String packages = "com.opensymphony.webwork.static template com.opensymphony.webwork.interceptor.deb ...
- 2008-11-04 09:48
- 浏览 1259
- 评论(0)
在dao里经常有这样的语句
代码
public E findById(Serializable id)
{
return (E) getHibernateTemplate().get(clazz, id);
}
HibernateTemplate类源码
代码
public Object get(Class entityClass, Serializable id) throws DataAccessException {
return get(entityClass, id ...
- 2008-11-03 10:33
- 浏览 3836
- 评论(0)
getSession()这个方法本身其实返回的是与当前事务绑定的Session对象,在HibernateDaoSupport中使用,HibernateDaoSupport本身是不负责对这个Session对象进行关闭的,所以在其中有一个对应的releaseSession()方法,用于关闭Session。
但是一般使用Spring时,我们会采用HibernateTransactionManager进行事务管理,把事务配置在Service层。此时,它会帮助我们关闭与当前事务绑定的Session对象,这个可以参照HibernateTransactionManager类中的doCleanupAfter ...
- 2008-11-02 20:02
- 浏览 6560
- 评论(1)
Hibernate建议所有的数据库访问都应放在事务内进行,即使只进行只读操作。事务又应该尽可能地短,长事务会导致系统长时间无法释放,因而降低系统并发的负载。Spring同时支持编程式事务和声明式事务。尽量考虑使用声明式事 ...
- 2008-11-02 19:34
- 浏览 946
- 评论(0)
DAO对象是模块化的数据库访问组件,DAO对象通常包括:对持久化类的基本CRUD操作(插入、查询、更新、删除)操作。Spring对Hibernate的DAO实现提供了良好的支持。主要有如下两种方式的DAO实现:
q 继承HibernateDaoSupport的实现DAO
q 基于Hibernate3.0实现DAO
不管采用哪一种实现,这种DAO对象都极好地融合到Spring的ApplicationContext中,遵循依赖注入模式,提高解耦。
10.7.1 继承HibernateDaoSupport实现DAO
Spring为Hibernate的DAO
- 2008-11-02 19:33
- 浏览 5076
- 评论(0)
HibernateTemplate提供持久层访问模板化,使用HibernateTemplate无须实现特定接口,它只需要提供一个SessionFactory的引用,就可执行持久化操作。SessionFactoyr对象可通过构造参数传入,或通过设值方式传入。如下:
//获取Spring上下文
ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");
//通过上下文获得SessionFactory
SessionFactory sessionFactory = (SessionFactory ...
- 2008-11-02 19:32
- 浏览 938
- 评论(0)
Hibernate的持久层访问必须按如下步骤进行:
(1)创建Configuration实例
(2)创建SessionFactory实例
(3)创建Session实例
(4)打开事务
(5)开始持久化访问
(6)提交事务
(7)如果遇到异常,回滚事务
(8)关闭Session
在HQL查询一节 ...
- 2008-11-02 19:31
- 浏览 937
- 评论(0)
Spring的DAO框架没有抛出与特定技术相关的异常,例如SQLException或HibernateException,抛出的异常都是与特定技术无关的org.springframework.dao.DataAccessException类的子类,避免系统与某种特殊的持久层实现耦合在一起。DataAccessException是RuntimeE ...
- 2008-11-02 17:03
- 浏览 1947
- 评论(0)
WebWork框架
WebWork 2建立在Xwork之上,处理HTTP的响应和请求。WebWork 2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类)、Session(会话)、Application(应用程序)范围的映射及Request请求参数映射。WebWork 2支持多视图表示,视图 ...
- 2008-10-28 14:57
- 浏览 1096
- 评论(0)
WebWork的核心是Xwork,而Xwork的核心可能就是Interceptor了。上周我在学习Action的时候已经接触到了Interceptor的概念,Interceptor的作用就是在执行Action前后进行拦截,使用户有机会执行其他操作。
在Xwork中,AOP是通过Action、ActionInvocation和Interceptor这三个接口完成的。WebWork通过Action代理类ActionProxy来执行Action的execute方法,而该方法则调用ActionInvocation的invokeAction方法具体执行Action中的方法。在DefaultActionI ...
- 2008-10-28 14:45
- 浏览 875
- 评论(0)
绝大多数情况下,WebWork不是直接实现com.opensymphony.xwork.Action接口,而是扩展com.opensymphony.xwork.ActionSupport类。ActionSupport实现了除Action以外的其他几个接口,主要的几个接口是:
com.opensymphony.xwork.Validateable
com.opensymphony.xwork.Validateaware
com.opensymphony.xwork.TextProvider
com.opensymphony.xwork.LocaleProvider
这些接口主要是提供给WebWor ...
- 2008-10-28 14:06
- 浏览 853
- 评论(0)
1、在Eclipse WTP中创建一个Dynamic Web Project,命名为ww2example1,Target Runtime选择配置好的Apache Tomcat 5.5。Project Facets页选择Web Module Version为2.4(其实就是Servlet版本),Java Version为5.0。WebDoclet不选。路径设置使用默认值。
2、将WebWork2.2.4的库文件拷贝到项目的WebContent/WEB-INF/lib目录下。拷贝的jar文件在webwork目录和子目录lib下,这个入门程序只需要lib子目录下的default子目录中的jar文件和 ...
- 2008-10-28 13:24
- 浏览 945
- 评论(0)