![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java EE
文章平均质量分 74
ices
专注架构设计、OOAD、设计模式、重构、Java EE!
展开
-
Java动态代理的实现
动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。 通常情况下,代理模式中的每一个代理类在编译之后都会生成一个class文件,代理类所实现的接口和所代理的方法都被固定,这种代理被称之为静态代理(Static Proxy)。那么有没有一种机制能够让系统在运行时动态创建代理类?答案就是本文将要介绍的原创 2012-11-18 00:04:02 · 491 阅读 · 0 评论 -
Spring 读书笔记-----Spring容器(一) .
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并且管理容器中的Bean。 Bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean处理,原创 2012-11-18 00:01:02 · 661 阅读 · 0 评论 -
Java异常机制及异常处理分析
异常处理的主要问题就是何时(when)该如何(how)使用异常。1. 异常的概念什么是异常?运行时发生的可被捕获和处理的错误。在java语言中,Exception是所有异常的父类。任何异常都扩展于Exception类,Exception就相当于一个错误类型。如果要定义一个新的错误类型就扩展一个新的Exception子类。采用异常的好处还在于可以精确的定位到导致程序出错的源代码位置,并原创 2012-11-19 22:52:07 · 6150 阅读 · 0 评论 -
dbcp数据库连接超时解决方案
1. 问题Could not open Hibernate Session for transaction; JDBC begin failed2. 解决方案MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接原创 2012-12-03 17:16:13 · 11846 阅读 · 0 评论 -
Spring Mail邮件发送
1. 准备发送邮件需要的jar 2. 配置发送邮件的Beanbeanid="mailSender"class="org.springframework.mail.javamail.Java原创 2012-12-04 16:35:08 · 3532 阅读 · 0 评论 -
Spring中使用Quartz任务调度
1. 配置applicationContext.xmlxmlversion="1.0"encoding="UTF-8"?>beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmln原创 2012-12-03 17:55:48 · 994 阅读 · 0 评论 -
String 与 StringBuffer解析
问题一:我声明了什么!String s = "Hello world!";许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!原创 2012-11-22 16:00:40 · 2257 阅读 · 2 评论 -
异常处理最佳实践
异常处理最佳实践5.1 如何选择checked exception与Unchecked exception采用checked exception还是Unchecked exception的时候,你要问自己一个问题,“如果这种异常一旦抛出,客户端能做怎样的补救?”[原文:When deciding on checked exceptions vs. unchecked excepti原创 2012-11-23 22:59:21 · 993 阅读 · 0 评论 -
Java 常见内存泄漏及其解决方案
1. java.lang.OutOfMemoryError: Java heap space 解决方案1.1 原因JVM中如果98%的时间是用于GC且可用的, Heap size不足2%的时候将抛出此异常信息。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的原创 2012-11-23 23:01:42 · 2178 阅读 · 0 评论 -
Java字符集编码
1. 概述在 下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587", UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。2. 编码基本知识最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语原创 2012-11-23 23:20:37 · 918 阅读 · 0 评论 -
用Java实现HTTP断点续传功能
(一)断点续传的原理其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。打个比方,浏览器请求服务器上的一个文时,所发出的请求如下:假设服务器域名为wwww.sjtu.edu.cn,文件名为down.zip。GET /down.zip HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/原创 2012-11-24 13:13:15 · 1866 阅读 · 0 评论 -
使用MyEclipse Hibernate Tool生成持久化类
本文主要介绍如何使用MyEclipse Hibernate Tool工具自动生成持久化类。如果DB Browser视图没有打开,则通过Window—>Show View—>Other,选择DB Browser项。 在DB Browser视图中点击New按钮。在打开的对话框中输入各项。(要修改Driver的话,请点击Configure database driver)原创 2012-11-25 09:03:59 · 2532 阅读 · 0 评论 -
Java集合体系结构分析与比较
1. Java集合框架图Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。Java集合框架图如下: 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。实现类:8个实现类(实线表示),对接口的具体实现。在很原创 2012-11-24 13:18:20 · 2472 阅读 · 1 评论 -
Pushlet实例解析
1.1 Pushlet1.1.1 介绍Pushlet 是一个开源的 Comet 框架,在设计上有很多值得借鉴的地方,对于开发轻量级的 Comet 应用很有参考价值。观察者模型Pushlet 使用了观察者模型:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。客户端 JavaScript原创 2013-11-02 13:54:51 · 10388 阅读 · 2 评论 -
Servlet3.0 服务端推技术实例
所谓Servlet 异步处理,包括了非阻塞的输入/输出、异步事件通知、延迟request 处理以及延迟response 输出等几种特性。这些特性大多并非JSR 315 规范首次提出,譬如非阻塞输入/输出,在Tomcat 6.0 中就提供了Advanced NIO 技术以便一个Servlet 线程能处理多个HttpRequest,Jetty、GlassFish 也曾经有过类似的支持。但是使用这些We原创 2013-11-02 13:49:55 · 7110 阅读 · 0 评论 -
SQL注入攻防入门详解(转)
SQL注入攻防入门详解=============安全性篇目录============== 毕业开始从事winfrm到今年转到 web,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口。这几天把sql注入的相关知识整理了下,希望大家多多提意见。(对于sql注入的攻防,我只用过简单拼接字符串的注入及参数转载 2012-11-18 09:45:40 · 1155 阅读 · 0 评论 -
ThreadPoolExecutor运转机制
先看一下新建一个ThreadPoolExecutor的构建参数:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,原创 2012-11-18 00:01:51 · 515 阅读 · 0 评论 -
Java重写方法典型实例
package package1;public class TestPackage1 { String getString(){ return "This is package1 class." ; }} package package2;import package1.TestPackage1;public class TestPa原创 2012-11-26 23:08:18 · 9569 阅读 · 0 评论 -
Java反射实例
1. 反射的概念 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗原创 2012-11-26 23:10:42 · 928 阅读 · 0 评论 -
包结构设计原则
1 共同封闭原则Common Closure Principle(CCP)一个包中所有的类应该对同一种类型的变化关闭。一个变化影响一个包,便影响了包中所有的类。一个更简短的说法是:一起修改的类,应该组合在一起(同一个包里)。如果必须修改应用程序里的代码,我们希望所有的修改都发生在一个包里(修改关闭),而不是遍布在很多包里。CCP原则就是把因为某个同样的原因而需要修改的所有类组合进一个包里。原创 2012-11-17 13:52:11 · 1610 阅读 · 0 评论 -
Spring目录包分析
Spring 的依赖关系依赖关系分组JAR 文件说明ant ant.jar, ant-junit.jar, ant-launcher.jarSpring 采用 Apache Ant作为其构建工具,还用来完成大量其它任务如文档生成和测试执行等。运行时 Ant根本不起作用,因此发布应用时无需包含该 JA翻译 2012-11-17 14:02:53 · 624 阅读 · 0 评论 -
配置Spring数据源(总结)
Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。1. DBCP数据源DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括原创 2012-11-17 14:07:32 · 472 阅读 · 0 评论 -
在jsp中获得 Spring的上下文
在Struts或别的框架中集成Spring的时候,Spring向我们提供了获得context的方法 getApplicationContext,那在jsp中如何获得呢?ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletConfig().get原创 2012-11-17 14:09:18 · 565 阅读 · 0 评论 -
Java Session详解
关于Session生命周期的问题,以下情况,Session结束生命周期,Servlet容器将Session所占资源释放:1.客户端关闭浏览器2.Session过期3.服务器端调用了HttpSession的invalidate()方法。 web.xml中 60或 60一个浏览器就是一个新session,关了浏览器session就结束了session是在原创 2012-11-17 14:52:17 · 2312 阅读 · 0 评论 -
Java泛型总结
1. 什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对原创 2012-11-17 14:54:09 · 2360 阅读 · 1 评论 -
Spring读书笔记-----Spring核心机制:依赖注入 .
Java应用(从applets的小范围到全套n层服务端企业应用)是一种典型的依赖型应用,它就是由一些互相适当地协作的对象构成的。因此,我们说这些对象间存在依赖关系。加入A组件调用了B组件的方法,我们就可以称A组件依赖于B组件。我们通过使用依赖注入,Java EE应用中的各种组件不需要以硬编码方式耦合在一起,甚至无需使用工厂模式。当某个Java实例需要其他Java 实例时,系统自动提供所需要转载 2012-11-17 15:54:39 · 989 阅读 · 0 评论 -
Spring异常处理
Spring异常处理对于不捕捉的异常,spring容器会自动捕捉(当然也会自动回滚事务),并自动地跳转到相应的异常页面例如(异常处理也有优先级): class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> dataAccessException.jsp原创 2012-11-17 14:05:08 · 1089 阅读 · 0 评论 -
在Spring、Hibernate中使用Ehcache缓存
EhCache是Hibernate的二级缓存技术之一,可以把查询出来的数据存储在内存或者磁盘,节省下次同样查询语句再次查询数据库,大幅减轻数据库压力;EhCache的使用注意点当用Hibernate的方式修改表数据(save,update,delete等等),这时EhCache会自动把缓存中关于此表的所有缓存全部删除掉(这样能达到同步)。但对于数据经常修改的表来说,可能就失去缓存的意义了(翻译 2012-11-17 14:10:50 · 659 阅读 · 0 评论 -
Spring 事务管理
事务是信息化系统的最基本功能,基本的CRUD 操作没有任何逻辑意义。一次业务逻辑操作往往需要具有原子性:典型的两个账户转账的情形,必然涉及两次数据库操作,这两次操作必须处于事务中,而不能只进行一半。Hibernate 建议所有的数据库访问都应放在事务内进行,即使只进行只读操作。事务又应该尽可能短,因为长事务会导致长时间无法释放表内行级锁,从而降低系统并发的性能。Spring 同时支持编程式事务翻译 2012-11-17 14:12:52 · 652 阅读 · 0 评论 -
全面解析Java注解
1. 了解注解我们有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身就是基于JDK 5.0的注解技术。所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。对于Java开发人员来说,在编写代码时,除了源程序以外,我们还会使用Javadoc标签对类、方法或成员变量进行注释,原创 2012-11-17 15:45:00 · 5905 阅读 · 0 评论 -
面向对象的特征
特征传统看法新思维对象一堆数据和方法具有方法的数据拥有责任的实体,这些责任定义了对象的行为。(我们应该关注对象的意图行为,而不是对象如何实现。)对象的设计多关注应该做什么,而不是如何实现它。对象设计的基本观点:关注动机而不是实现。(关注对象要做什么,能帮助我们免于过早地操心实现细节,从而将这些实现细节隐藏起来。)原创 2012-11-17 13:49:30 · 1080 阅读 · 0 评论 -
使用ThreadLocal解决多线程程序并发问题
1.ThreadLocal我们知道Spring通过各种模板类降低了开发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说它们不能在同一时刻被多个线程共享。虽然模板类通过资源池获取数据连接或会话,但资源池本身解原创 2012-11-17 13:33:06 · 1391 阅读 · 0 评论 -
Comt4j消息推送实例
1.1 Comt4j1.1.1 介绍Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。 功能特性· 推送消息广播。· 推送定向消息。· 提供连接上线前、上线、下线前、下线、发送消息等多种可处理事件。· 消息缓存机制,确保长轮询工作模式下不原创 2013-11-02 13:56:50 · 10479 阅读 · 4 评论