- 博客(22)
- 资源 (17)
- 收藏
- 关注
原创 Java动态代理剖析(三)
2.回调函数 回调函数的好处就是可以实现调用者与被调用者之间的解耦,对具体的调用过程进行了封装,我们只需要关心后面的实现过程。 对于动态代理而言,用到回调函数的部分就是代理类调用方法: userManager.test(); 当代理类userManager调用test()方法时,就会触发调用前面说的this参数(即LogHandler类)的invoke方法,而具体的invok
2012-02-05 10:10:38 2285 22
原创 Java动态代理剖析(二)
三. 动态代理中所用到的技术 动态代理中主要用到了反射机制和回调机制,下面我来先主要讲解一下这两个机制的概念及其在动态代理中的应用。 1.反射机制 我们先来看一下Java反射机制的定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为j
2012-02-05 09:56:11 2005 10
原创 Java动态代理剖析(一)
Java中的动态代理机制是Java中一个重要的设计模式,以后会经常用到,今天我来跟大家一起剖析一下这个重要的模式。 一. 为什么要使用动态代理 代理模式分为静态代理和动态代理,我们之所以会有动态代理的出现,就是因为静态代理存在不足,比如静态代理中会有大量重复的类和代码。 而我们的动态代理可以通过LogHandler类来动态的创建代理类,避免了编写各个代理类及
2012-02-05 09:42:39 5744 24
原创 Hibernate中的映射
概念: Hibernate映射主要是通过对象关系映射文件实现,将对数据库的操作直接转换为对实体对象的操作 ,实现了真正的面向对象编程。 目的: 使用映射的目的除了实现面向对象操作同时还提高了效率。 其实建立实体对象间的关联关系就相当于在多个表间建立约束(只是从表转换到了对象上)。 分类:1.基本映射 正确理解各个配置选项的含义是掌握映射文件的关键
2012-02-26 20:51:11 981 4
原创 Hibernate知识点总结
先来看一下Hibernate中的知识点的整体结构图:下面我来对其中的知识点进行一下讲解:一.简介和使用: 简介 Hibernate的配置 Hibernate对象的生命周期 核心接口二.映射相关 Hibernate中的映射 主键生成策略 三.语言: HQL Hibernate查询语言(HQL),和SQL不同的是
2012-02-26 20:36:29 1344 4
原创 Hibernate中的抓取策略
当应用程序需要在关联关系间进行导航的时候, Hibernate如何获取关联对象的策略,它是对Hibernate性能的一种优化策略。 Hibernate中定义了几种抓取策略:1.连接抓取(Join fetching) Hibernate通过在SELECT语句使用OUTER JOIN(外连接)来获得对象的关联实例或者关联集合。 2.查询抓取(Select fetchin
2012-02-26 20:34:44 998 4
原创 Hibernate中session的操作
Hibernate中的Session有多个方法,下面对Session的常用方法进行一下简单的介绍: 查询方法get和load get方法:不支持lazy(延迟加载),查询数据不存在时返回null load方法:默认支持lazy(可以设置为不支持),查询数据不存在时返回objectNotFoundException异常。 添加方法save sessio
2012-02-26 20:31:04 1042 8
原创 Hibernate中的缓存机制
缓存概念: 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考
2012-02-26 19:19:54 1111 5
原创 Hibernate中的主键生成策略简介
对于映射文件中的主键,我们习惯于于让该字段能够自动增长,来保证其唯一性。 但是,不同的数据库自动增长的方式并不是相同的。如在SQLSERVER中,用identity,MYSQL中,有increment,ORACLE中通常采用sequence。这样一来,在数据库的主键列操作上,便会显得比较麻烦。 在Hibernate中,提供了主键生成策略。下面是比较常用的几种:
2012-02-26 19:02:35 1229 6
原创 JUnit简介
概念: JUnit是一个回归测试框架。 JUnit测试是程序员测试(用于单元测试),即所谓白盒测试。 特点: 1.用于测试期望结果的断言(Assertion) 可以在测试前设定一个期望结果值,然后使用断言来判断期望值和实际值是否相同。 2.用于共享共同测试数据的测试工具 使用JUnit测试的数据会保存到数据库中,所以其他人也可以直接使用。
2012-02-26 18:49:22 2380 4
原创 持久化对象的生命周期
先来看一下持久化对象生命周期的图: 应用程序运行过程中,系统使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象。为了区分这些对象,我们根据对象和当前会话的关联状态,可以分为三种情况。 三种状态的的对象: 1.暂停对象(Transient Object) 对象刚刚建立,还没有使用Hibernate进行保存。 该对象在数据库中没有记录,
2012-02-26 17:56:35 1348 2
原创 Hibernate中的接口
Hibernate的概念前面我们已经有所了解,现在我们就从它的接口开始对它进行更深一步的认识。 一、Hibernate的接口分布图: 我先对该接口分布图进行一下讲解: 1.位于最底层的JNDI,JDBC和JTA是J2EE13个技术规范中的三个规范。 2.位于PersistenceLayer持久层的是Hibernate封装好的接口,用到时直接使用,不需要
2012-02-25 21:14:15 1270 4
原创 为什么使用Hibernate
为什么使用Hibernate?这个问题就像我们为什么使用MVC,设计模式一样,我们使用它们的目的就是为了方便,而它们之所以会存在就是因为它们有自己的特点。今天就来通过认识Hibernate,从而知道我们为什么要使用它。 一、Hibernate的由来: 我们平常做开发的时候经常需要使用到JDBC连接来读写数据库,最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连
2012-02-25 15:30:41 1250 6
原创 快速上手Hibernate
在前面我们已经对Hibernate有所了解,并知道了使用Hibernate的好处,下面就给大家展示一下如何快速使用Hibernate:环境搭建:1.下载Hibernate,并解压缩(下载地址:http://www.hibernate.org/downloads)2.创建一个新的Java项目3.引入相关jar包 Hibernate_Home/lib/*.jar Hibern
2012-02-25 12:56:40 1600 11
原创 Struts知识点总结
Struts的视频看了一周,看完了来总结一下Struts中设计到的知识点:先看张总图:一.简介 1.概念:struts是一个基于MVC的Web开发框架。 2.特点: 1)Struts使用并封装了MVC开发模式。 2)提供丰富的标签库。 3)提供页面导航。 4)提供异常处理机制 5)支持国际化
2012-02-15 16:45:35 1548 14
原创 Struts与Model2(二)
四.源码示例Struts环境搭建: 1.首先要下载struts的jar包,地址http://struts.apache.org/ 2.解压后将lib文件夹里的jar包都加入到项目中 3.在webapps文件夹中解压struts-blank.war,将其中的struts-config.xml拷贝到项目中 4.配置web.xml部署ActionServlet。这个格式是相对固定的
2012-02-15 16:41:00 1103 4
原创 Struts与Model2(一)
我们知道Model2是基于MVC设计模式的一个经典的实现,而Struts也说是MVC的经典实现,那么两者有什么区别呢?下面我来通过Struts的执行原理来剖析两者的区别:一.概念 struts是一个基于MVC的Web开发框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。二.执行流程 我们先看一个登录小例子,基于Model2我们
2012-02-15 15:09:39 1271 11
原创 项目小结
最近的项目已经告一段落了,今天就来对该项目进行一下总结。 本次项目是通过java来编写的一个Web项目,先是建模,设计表,然后就是页面的设计,最后又讲解了一些关于连接池,WebService等一些问题。 下面我通过这整个工程的实现过程及在其中用到的知识点和我的感受来对该项目进行总结。一.建模及建表 在本项目中,我们使用的PowerDesigner来进行建模,并直接生成脚
2012-02-08 13:33:59 1453 16
原创 事务
今天来跟大家一起探讨关于事务的执行原理。 我们平常说的事务是为了保持操作的一致性,但是这个也是分情况来说的,今天我主要说三种情况,看看事务的执行过程中是如何保持一致性的。一. 全部一致性 这个就是我们平常所说的只要有一个操作出现问题就全部都要取消操作(即回滚事务)。 下面我来举个例子,一共有三张表T_LOG1,T_LOG2,T_LOG3,只要有一个表的操作出
2012-02-08 08:24:21 1236 10
原创 Listener执行流程
每次说起监听器,总是有些空的感觉,那么它到底是个什么东西呢?一.概念 监听器也叫 Listener,是 Servlet的监听器,它可以监听客户端的请求,服务端的操作等。 监听器可以自动激发一些操作,比如监听在线的用户的数量. 当增加一个 HttpSession时,就激发 sessionCreated(HttpSessionEvent se) 方法,这样就可以给在线人数加 1
2012-02-07 17:33:59 1642 9
原创 Filter执行流程
Filter是从Servlet2.3规范开始新增的功能,并在Servlet2.4规范中得到增强,接下来让我们一起来看看Filter的真实面目吧。一. 概念 过滤器就是在源数据和目的数据之间起过滤作用的中间组件。对Web应用来说,过滤器是一个驻留在服务器端的Web组件,它可以截取客户端和资源之间的请求与响应信息,并对这些信息进行过滤。 二. 执行流程 当Web容器接受
2012-02-07 15:57:43 1565 7
原创 HTTP协议
Http协议是我们做Web开发时经常会用到的一个协议,今天我就来跟大家一起对Http协议进行一下简单的讲解:一.概念 HTTP协议属于TCP/IP模型中的应用层协议,而两个应用程序(我们这里指的就是浏览器与服务器)之间要进行互相通信,首先得建立TCP连接,然后浏览器才能向服务器发送请求信息,服务器在接受到请求信息后,返回相应的应答信息,浏览器接收到来自服务器的应答信息后,对这些数据进
2012-02-06 13:01:48 1756 7
testMockito.java
2014-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人