
【Java】
文章平均质量分 73
五月槐花儿香
你就是你!
展开
-
J2EE的13个规范总结
什么是J2EE?在企业级应用中,都有一些通用企业需求模块,如数据库连接,邮件服务,事务处理等.既然很多企业级应用都需要这些模块,一些大公司便开发了自己的通用模块服务,即中间件.这样一来,就避免了重复开发,开发周期长和代码可靠性差等问题.但是,各公司的中间件不兼容的问题就出现了,用户无法将它们组装在一起为自己服务.于是,"标准"就应运而生了.J2EE就是基于JAVA技术的一系列标准.J2原创 2014-08-22 22:22:52 · 30582 阅读 · 60 评论 -
【J2EE】在项目中理解J2EE规范
J2EE平台由一整套服务(Service),应用程序接口(API)和协议构成,它对开发企业级应用提供了功能支持.13个核心技术分别是JDBC, JNDI, EJB, RMI, JSP, SERVLET, XML, JMS, JAVAIDL/CORBA, JTS, JTA, JAVAMAIL和 JAF. 何为企业级应用? 1.数据量特别大. 2.用户特别多. 3.性能要求高.原创 2015-06-23 15:51:46 · 1801 阅读 · 4 评论 -
JBoss配置连接池
JBoss配置连接池解决数据库连接效率问题.原创 2015-06-30 21:51:33 · 5835 阅读 · 6 评论 -
SSH2整合--配置+详解
最近的项目做完了,整理整理用到的技术,也顺便系统地回顾一下框架基础,防止学而不思则罔,思而不学则殆. 先说说框架整合.最初的架构是最简单的Struts2+Spring3+Hibernate3,数据库使用的是MySQL.分别列出整合需要的jar.Struts: commons-fileupload.jar Commons-io.jar Freemarker.j原创 2015-08-26 23:48:53 · 16302 阅读 · 11 评论 -
【系统性能优化】Hibernate调优
基础系统的学生信息维护页面,查询显示学生信息,但每次查询过程都很慢,所以对该部分进行优化. Hibernate调优是使用SSH框架很常见的问题,一般可以从以下几方面考虑:一、数据库设计调整二、主配置参数(ID生成策略,二级缓存,lazy加载)三、一级缓存管理四、事务控制策略五、HQL优化 我们这里的优化,是对hql语句的优化,考虑使用select newma原创 2015-07-24 19:24:04 · 4778 阅读 · 4 评论 -
Hibernate中的延迟加载(懒加载)
什么是懒加载? Hibernate提供了一种机制,即在设置了使用懒加载的情况下,查询某一条数据时不会立即访问数据库,因此不会返回指定对象,而是返回代理对象,该代理对象并不为null,它实际上是Hibernate自动实现的指定对象所属类的子类的对象,该对象具有默认值.当要使用真正对象的属性的时候才会访问数据库,这时代理对象会自动查询数据库中对应对象的数据并返回.这样一来降低了程序对数据原创 2015-08-28 23:42:42 · 2163 阅读 · 4 评论 -
Hibernate懒加载异常的解决与深刻分析
出现原因: Hibernate允许对关联对象及属性延迟加载,前提是这个操作在同一个Hibernate session范围内进行.如果发生这样的情况,当service层返回了一个启用延迟加载功能的domain对象给web层,而web层访问到这些需要延迟加载的对象或属性时,由于加载domain对象的session已经关闭导致无法访问,就会出现访问异常. 解决方法: 我们可以原创 2015-08-29 21:22:37 · 5031 阅读 · 6 评论 -
Hibernate对象的三种状态
hibernate中对象的状态有三种:临时态(Transient)、持久态(Persistent)和游离态(Detached),三种状态转化的方法都是通过session来调用的,处于三种状态下的对象所具有的特点,总结如下: 临时态:没有被session管理 在数据库中没有与之匹配的记录;持久态:纳入session管理 在数据库中有与之匹配原创 2015-08-05 21:21:38 · 1456 阅读 · 6 评论 -
【J2EE】企业级项目开发总结--JMS发布-订阅模型篇
通过上篇博客的示例,我们可以总结出消息通信的基本过程。首先得到连接工厂,通过工厂生产连接,从连接中得到一个会话,根据会话创建消息生产者,目的地,消息和消息消费者。详细过程如下图。 和前一篇P2P中的代码类似,我们今天来看看发布订阅模型。只是在这里把Queue换成了Topic,消息生产者叫做消息发布者,发布一个主题,所有订阅主题的类叫做消息订阅者,每个订阅者都对应原创 2015-09-27 15:57:06 · 2030 阅读 · 5 评论 -
ClassNotFoundException: org.quartz.spi.ClassLoadHelper
今天帮同事解决一个问题,分享给大家。使用quartz完成一个作业调度,使用的是JBoss服务器。写好代码运行报错,错误提示关键信息为: java.lang.NoClassDefFoundError:org/quartz/spi/ClassLoadHelper java.lang.ClassNotFoundException:org.quartz.spi.ClassLoadHelpe原创 2015-10-16 15:22:14 · 9633 阅读 · 2 评论 -
JVM类加载器
java虚拟机中可以安装有多个类加载器,系统默认三个主要类加载器,分别是BootStrap,ExtClassLoader,APPClassLoader。每个类加载器负责加载特定位置的类,他们是一个树形结构,有些类加载器也是java类,也需要类加载器来加载,在实例化每个类加载器对象时,需要为其指定一个父级类加载器或默认采用系统类加载器。但总有第一个类加载器不是java类,而是初始化就有的,嵌...原创 2015-10-31 22:09:54 · 1398 阅读 · 2 评论 -
【J2EE】企业级项目开发总结-JBoss Modules
Java一直使用classpath的方式来加载各种class和jar的资源。 有什么不妥? 我们熟知的classpath机制,它会创建一个application类加载器,所有相关jar文件资源提供的class都会被它加载,汇聚成为一个大块。如果有一个很大很复杂的应用,包含很多Jar文件,并且有些jar根本不会被使用,或者有些jar因为依赖管理不好原创 2015-10-31 22:10:14 · 1797 阅读 · 2 评论 -
【J2EE】企业级项目开发总结--JMS点对点模型篇
今天的Demo演示了点对点模型中消息发送者与消息消费者在传递消息时的两种方式,一种是不管消息队列中有没有消息,消费者一直在取;一种是监听消息队列,当有消息时才取. 首先开启服务,我这里用的是Activemq,运行相应的bat文件即可.在浏览器访问http://localhost:8161/,看到欢迎界面代表成功. 第一种:消费者直接取 package com.tgb.activ原创 2015-09-23 17:29:26 · 1762 阅读 · 6 评论 -
【J2EE】企业级项目开发总结--JMS基础篇
前面回顾到EJB,说了SessionBean和EntityBean还没提到MessageDrivenBean,我们先了解JMS以后再来谈MessageDrivenBean.下面来看学习和使用JMS必须了解的基础. 先看图,宏观了解下各部分之间的关系.消息中间件:企业消息传递系统通常被称为消息中间件(Message OrientedMiddleWare),属于消息原创 2015-09-23 11:16:05 · 2589 阅读 · 5 评论 -
【J2EE】企业级项目开发总结--EJB篇
很多人都觉得EJB高大上,就是复杂,难学难用.其实J2EE是企业级但它并没有我们想象的那么笨重,和那些轻量级的框架们比,它有着得天独厚的优势,好比Word,Excel...它们庞大的Office家族都是微软出来的,它们彼此相连,互帮互助.如此,EJB使用了其它很多标准规范(诸如JTA、JDBC/RMI/IIOP等)来实现自己的功能。使用J2EE规范,可以很容易地在J2EE技术不同实现间进行转换。因原创 2015-09-22 15:49:02 · 2632 阅读 · 5 评论 -
【AOP】借助容器将服务与代理类分离
我们所希望的AOP是这样的: 业务单独开发,服务也单独开发.将希望被切入的业务颗粒扔到容器中,通过AOP这种思想(AOP的实现有多种)将服务切进去,换句话说,就是在AOP提供的切面类上配置服务与业务间的切入关系,然后将业务和服务都分别交给容器管理. 原来我们一直把它做成了这样: 这种实现确实也能够满足业务和服务单独开发,但是原创 2015-05-29 21:22:07 · 1228 阅读 · 2 评论 -
Java项目(2)——Java开发环境配置|JDK与JRE
C盘扩容--修复Oracle--修改注册表--Windows无法启动--重做系统--重新配置Java开发环境,外加操作考试系统,这三天过的犹如做梦一般.自己写个Java开发环境配置的小总结,做任何事需要的就是一种思路,要懂得来龙去脉,不然自己会死得很惨.基本步骤就是一系列安装: Jdk Oracle 服务器客户端 Plsql MyEclipse 配置MyEclipse的jdk和to原创 2014-09-21 17:22:30 · 4474 阅读 · 31 评论 -
Java项目(1)——采用Ajax异步交互技术验证用户代码是否重复
DRP项目中涉及到注册用户的问题.本文讲述的是注册过程中使用Ajax异步交互验证用户名是否已经存在的实现原理.之前很多项目中并未使用Ajax技术,结果是所有的判断都等到点击提交按钮时再执行,这样的结果无非是网站卡/软件死,都说不作死就不会死,所以Ajax被广泛应用,用户竖起拇指称赞,不得不说Ajax俘虏了web用户啊~~ 实现之前先了解下AjaxreadyState的五个状态。原创 2014-09-09 21:28:58 · 4644 阅读 · 18 评论 -
Java项目(3)——站在用户的角度谈UI设计
前言: 海南项目宣告竣工,验收之日,除部分代码有待优化外,亟待改进的就是界面。米老师说:连你都忍不住去拖下滚动条,你还指望用户用的舒坦吗? 顿悟: 业务、功能或许是软件的核心,技术也许是软件的精髓,但UI是它们的总代表。一款软件如果用户觉得它不好看更不好使,那么这个软件就没有多少价值。而设计人员更应该站在用户的角度去想去做,让用户觉得方便又舒服才原创 2014-09-28 20:02:04 · 1903 阅读 · 48 评论 -
Java项目(4)——探究两种开发模型的异同-Model1与Model2
弱弱的说一句: jsp在web服务器上,这一点应该没有疑问吧? 首先很俗套地看下两个模型. Model1就是实现,实现就行,系统简单,谈不上架构,正如简单工厂并不算在23个常用设计模式之列一样.Model1的前身是原创 2014-10-13 16:25:09 · 2399 阅读 · 32 评论 -
Java项目(5)——单例模式的应用与研究
单例模式是很别致的一个模式,很少有人拿它跟其他模式相比,因为,单例模式很简单,很特别,作用就是保证一个类有唯一一个实例,并让一个全局变量使得它能被访问.而保证这个类只被实例化一次的办法就是把构造函数变为私有的,除了它自己都不能new新对象,然后把实例化的过程写在类自身的公有方法里,是否new新对象只有它自己判断决定,已经有了一个实例就直接返回已存在的对象,没有就new一个新实例.其他类想实例化一个原创 2014-10-29 22:24:34 · 1759 阅读 · 35 评论 -
对AOP池(AOP容器)的研究
导语:其实当CEO比当门卫累得多,不仅要承受着来自董事会的各种压力,还要率领公司不断前进,一旦出现亏损就会受到质疑,所以每天都必须坚持不懈的努力。 想坐上一个市值过亿美元公司CEO的宝座吗?那么你最好的办法就是先去当门卫。别不相信,这是大公司CEO们的一个共识,他们认为想要拥有一个CEO的能力,就必须培养自原创 2015-02-28 21:55:58 · 1300 阅读 · 4 评论 -
JDK动态代理
那时候还小,只记得代理模式就是 daili 给 SchoolGirl 送了洋娃娃,送了花,还送了巧克力… 代理模式是在访问对象时引入一定程度的间接性,这种间接性让我们可以趁机完成许多想要的功能.代理模式的特征是代理类和委托类有同样的接口,代理类主要负责为委托类预处理消息,过滤消息,把消息转发给委托类,以及事后处理消息等.代理类对象和委托类对象关联,代理类对象是通过调用委托原创 2015-03-17 08:21:47 · 1356 阅读 · 11 评论 -
【Web】了解Web.xml的配置
web.xml是web项目启动时首先被容器读取的配置文件,根据其中的配置创建实例并完成参数初始化等以保证项目能够正确启动运行.web.xml中配置的项目主要有这么几种,我对各个元素的作用了解如下:上下文参数:<context-param> <param-name>contextConfigLocation</pa...原创 2015-04-27 18:00:18 · 2467 阅读 · 11 评论 -
【Web】Web容器与Servlet
首先说说我们知道的服务器,比如 IIS, Tomcat, Jboss等.它们都与web应用有关,IIS是一种Web服务组件,包括Web服务器,FTP服务器,NNTP服务器和SMTP服务器; Tomcat属于轻量级Web服务器,中小型项目中我们经常用到; Jboss属于重量级的Web应用服务器,包括EJB容器和Web服务器,我们的ITOO项目用的就是Jboss....原创 2015-04-30 19:44:21 · 1538 阅读 · 16 评论 -
【Web】了解springMVC运行原理
先来使用springMVC做一个入门级的HelloWorld程序。 新建项目,导入所需jar包,详情如下: 配置Web.xml springMVC org.springframework.web.servlet.DispatcherServlet contextCo原创 2015-04-27 17:44:28 · 4787 阅读 · 21 评论 -
【Web】ServletContext与ServletConfig
在Servlet相关的对象中还有一个ServletContext对象,很多时候我们分不清楚一些长得像的东东,是因为我们不了解它们的来历.解除疑惑,我们先来看看这个对象是什么时候产生的. 先来看个简单的图: 容器启动一个Web应用时为之创建ServletContext对象,每个Web应用都有唯一的Servlet...原创 2015-04-30 20:46:25 · 1191 阅读 · 13 评论 -
【Linux】在centOS上安装maven
因为是maven项目,所以还要做这个工作.依旧是从官网下载的apache-maven-3.2.5-bin.tar.gz.有了前面的基础,下面就做得快一些了. 1.tar -zxvf apache-maven-3.2.5-bin.tar.gz (解压)2.vi /etc/profile (打开文件,编辑,在文件最后添加如下变量,编辑完成按ESC键退原创 2015-05-12 19:58:30 · 1904 阅读 · 2 评论 -
【Linux】在centOS上安装 JDK, Jboss
前面我们一直在windows服务器上部署项目,JBoss启动时,系统内存直线上升至95%,当系统上线时,这个状况是顶不住同一时刻上千次的访问的,ear包过大,远程调用等都是亟待解决的问题.从服务器出发,改装兼容性更好的Linux系统.半个下午+半个晚上部署好这些开发环境,主要过程整理如下。JDK 如果系统自带jdk,我们可以先给它卸载掉....原创 2015-05-12 19:51:28 · 2095 阅读 · 2 评论 -
CGLib动态代理
我们知道JDK动态代理只能够代理实现了接口的类,而对于没有实现接口的类,jdk就显得无能为力.这种情况下,我们就选择使用cglib来为指定的目标类进行代理,它为目标类生成一个子类,然后覆盖其中的方法实现增强. cglib如何实现代理,我们来看一段源码.没有实现接口的类:public class GreetingImpl { public void s原创 2015-05-28 16:08:49 · 1117 阅读 · 6 评论 -
【系统性能优化】减少页面对公共资源Easyui的访问次数
原因:系统主页面嵌套子页面太多,用的是远程调用,又涉及多个子系统的数据库IO操作,所以很慢.第一版做出来,加载首页需要8s,8秒钟什么概念?用户体验极差!所以我们对系统首页进行了性能优化.如图1,2,3,4分别是嵌入主页面的四个子页面,我们使用的是IFrame标签,这个标签代表我们的子页面都是独立的页面,而父页面与所有的子页面中都添加了对EasyUI原创 2015-06-16 14:59:28 · 3007 阅读 · 4 评论 -
java如何实现多线程
首先,java创建线程的方式有两种,一个是继承Thread类,一个是实现Runnable接口,这两种方式线程执行完后没有返回值。第一种,继承Thread类:写一个Thread类的子类MyThread public class MyThread extends Thread { public void run() { System.out.println...原创 2015-10-31 22:10:32 · 1920 阅读 · 4 评论