2008-06-21

hibernate二级缓存攻略

关键字: hibernate
文章来源:http://www.javaeye.com/topic/18904 相关文章: 关于Hibernate Cache 数据库对象的缓存策略 Spring+Hibernate 缓存不起作用 更多相关推荐 很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。 hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是sess ...
http://www.jdon.com/mda/ddd.html(转载请保留) 2004 年著名建模专家Eric Evans发表了他最具影响力的著名书籍:Domain-Driven Design –Tackling Complexity in the Heart of Software(中文译名:领域驱动设计 2006年3月清华出版社译本,或称 Domain Driven-Design architecture [Evans DDD])。   Martin Fowler作序说;“希望本书是一本非常有影响力的书籍,....... Eric最值得我尊敬的一个方面是他敢于讨论还未取得成功的事情” ...
org.springframework.beans及org.springframework.context包是Spring IoC容器的基础。 BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。 简介 ApplicationContext是BeanFactory的扩展,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContext)。 容器 在Spring中,BeanFactory是IoC容器的核心接口。它的职责包括:实例化、定位、配置应用 ...
2008-01-23

注入依赖

关键字: 注入依赖
依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起工作的其它对象)只会通过以下几种方式来实现:构造器的参数、工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置属性。因此,容器的工作就是创建bean时注入那些依赖关系。 Setter注入 通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即可实现基于setter的DI。 下面的例子将展示使用setter注入依赖。注意,这个类并没有什么特别之处,它就是普通的Java类。 public class SimpleMovieLister { // the SimpleMov ...
方法一:在servlet的init()方法中缓存数据 当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,它会调用这个servlet的init()方法。在一个servlet的生命周期中,init()方法只会被调用一次。通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系统性能。 例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的DataSource接口来取得数据库连接,在通常的情况下,我们需要通过JNDI来取得具体的数据源。我们可以想象在一个具体的应用中,如果每次SQL请求都要执行一 ...
2008-01-23

JSTL

关键字: jstl
JavaServer Pages Standard Tag Library (1.1 ),它的中文名称为 JSP 标准标签函数库。JSTL是一个标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。从表7-1 可以知道,JSTL所提供的标签函数库主要分为五大类: (1)核心标签库 (Core tag library) (2)I18N格式标签库 (I18N-capable formatting tag library) (3)SQL标签库 (SQL tag library) (4)XML标 ...
2008-01-23

EL 表达式

关键字: el 表达式
JSP2.0之后,EL已经正式纳入成为标准规范之一。 JSF也考虑将EL纳入规范。 所有EL都是以${为开始、以}为结尾的。 EL提供 . 和 [ ] 两种运算符来存取数据。 ${sessionScope.user.sex} 相当于 ${sessionScope.user[“sex”]} . 和 [ ] 也可以同时混合使用。 . 和 [ ] 的区别: (1) 当要存取的属性名称中包含一些特殊字符,如 . 和 – 等非字母或数字的符号,就一定要用 [ ],例如: ${user.my-name} 是不正确的,应当改为 ${user.[“my-name”]} (2) 当要动态取值 ...
2.Commons Collections中的算子 算子成为Commons Collections 3.1中的有趣的部分有两个原因:它们没有得到应得的重视并且它们有改变你编程的方式的潜力。算子只是一个奇特的名字,它代表了一个包装了函数的对象—一个“函数对象”。当然,它们不是一回事。如果你曾经使用过C和C++的方法指针,你就会理解算子的威力。 一个算子是一个对象—一个Predicate,一个Closure, 一个Transformer。 Predicates求对象的值并返回一个boolean,Transformer求对象的值并返回新对象,Closure接受对象并执行代码。算子可以被组合成组合算 ...
如果你不熟悉Jakarta Commons话,那么很有可能你已经重新发明了好几个轮子。在你编写更多的普通的框架或工具之前,体验一下Commons吧。它将会大大地节约你的时间。太多的人自己写一个,其实是与Commons Lang中的StringUtils重复的StringUtils类,或者,开发者不知道从Commons Collections中重新创建工具,哪怕commons-collections.jar已经在classpath中可用了。 真的,请停一下。看看Commons Collections API,然后再回到你的任务中;我发誓你会发现一些简单有用的东西可以帮你在明年节省一周的时间。如 ...
随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。 在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数 ...
2007-12-10

ServletContext接口

关键字: java, web.xml
对于web容器来说,ServletContext接口定义了一个servlet环境对象,这个对象定义了一个在servlet引擎上的servlet的视图。通过使用这个对象,servlet可以记录事件,得到资源并得到来自servlet的引擎类。 servlet容器在启动时会加载web应用,并为每个web应用创建唯一的servlet context对象,可以把ServletContext看成是一个Web应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据,他提供了4个读取和设置共享数据的方法。具体见api帮助文档。 另外,ServletContext对象只在web应用 ...
2007-12-01

java学习的四个阶段(二)

关键字: java
第三阶段: 您将学习 J2EE 技术 名称 内容简介 涉及到的项目 流行Web框架简介 Struts / WebWork / Tapestry JSF / Velocity / Freemar ...
2007-12-01

java学习的四个阶段(一)

关键字: java
第一阶段: 您将学习 JAVA 编程的基础部分,即 J2SE 部分,共分 2 门课程 名称 内容简介 涉及到的项目 J2SE JAV ...
六、HttpSession常见问题 1、session在何时被创建 一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的 ...
四、理解session机制 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的ses ...
一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关闭这个期间 ①。最混乱的是“用户(客户端)在一次会话期间”这样一句话,它可能指用 ...
2007-11-28

java模拟post发送

关键字: java, http
下面是一个java模拟post的比较通用的例子 java 代码 import java.io.OutputStreamWriter;    import java.net.HttpURLConnection;    import java.net.URL;    import java.util.HashMap;    import java.util.Iterator;  &nb ...
        ArrayList 和Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList 差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。