`
javachikuang
  • 浏览: 72089 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
2. 关于Thread的误解 这个误解相当常见。 我们说一个方法是否是线程安全的,判断的标准只有一个, 这个方法是否访问了 可以写的“成员变量”。(所谓的state) 注意,只有两个条件: (1)可以改变的 (2)成员变量 如果访问了可以写的“成员变量”,那么这个方法不是 线程安全的。 如果没有访问 可以写的“成员变量”,那么这个方法是 线程安全的。 方法的线程安全特性和传进来的参数毫无关系。 举个例子说明,为什么和参数毫无关系。 代码 public class A { // 这个方法没有访问任何成员变量,本身是线程安全的。 public voi ...
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 ...
在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 ...
getSession()这个方法本身其实返回的是与当前事务绑定的Session对象,在HibernateDaoSupport中使用,HibernateDaoSupport本身是不负责对这个Session对象进行关闭的,所以在其中有一个对应的releaseSession()方法,用于关闭Session。 但是一般使用Spring时,我们会采用HibernateTransactionManager进行事务管理,把事务配置在Service层。此时,它会帮助我们关闭与当前事务绑定的Session对象,这个可以参照HibernateTransactionManager类中的doCleanupAfter ...
Hibernate建议所有的数据库访问都应放在事务内进行,即使只进行只读操作。事务又应该尽可能地短,长事务会导致系统长时间无法释放,因而降低系统并发的负载。Spring同时支持编程式事务和声明式事务。尽量考虑使用声明式事 ...
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
HibernateTemplate提供持久层访问模板化,使用HibernateTemplate无须实现特定接口,它只需要提供一个SessionFactory的引用,就可执行持久化操作。SessionFactoyr对象可通过构造参数传入,或通过设值方式传入。如下: //获取Spring上下文 ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //通过上下文获得SessionFactory SessionFactory sessionFactory = (SessionFactory ...
Hibernate的持久层访问必须按如下步骤进行: (1)创建Configuration实例 (2)创建SessionFactory实例 (3)创建Session实例 (4)打开事务 (5)开始持久化访问 (6)提交事务 (7)如果遇到异常,回滚事务 (8)关闭Session 在HQL查询一节 ...
Spring的DAO框架没有抛出与特定技术相关的异常,例如SQLException或HibernateException,抛出的异常都是与特定技术无关的org.springframework.dao.DataAccessException类的子类,避免系统与某种特殊的持久层实现耦合在一起。DataAccessException是RuntimeE ...
WebWork框架 WebWork 2建立在Xwork之上,处理HTTP的响应和请求。WebWork 2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类)、Session(会话)、Application(应用程序)范围的映射及Request请求参数映射。WebWork 2支持多视图表示,视图 ...
WebWork的核心是Xwork,而Xwork的核心可能就是Interceptor了。上周我在学习Action的时候已经接触到了Interceptor的概念,Interceptor的作用就是在执行Action前后进行拦截,使用户有机会执行其他操作。 在Xwork中,AOP是通过Action、ActionInvocation和Interceptor这三个接口完成的。WebWork通过Action代理类ActionProxy来执行Action的execute方法,而该方法则调用ActionInvocation的invokeAction方法具体执行Action中的方法。在DefaultActionI ...
绝大多数情况下,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 ...
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文件和 ...
Global site tag (gtag.js) - Google Analytics