- 博客(14)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Java类加载器加载类顺序
<br /> <br />java ClassLoader的学习<br />java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class形式,然后由java虚拟机(JVM)解释执行,.class字节码文件本身是平台无关的,但是jvm却不是,为了实现所谓的一次编译,到处执行,sun提供了各个平台的JVM实现--也就是说jvm不是跨平台的,编译好的字节码文件被放在不同的操作系统平台上的jvm所解释执行,这个章节主要解释一下JVM装载类的机制<br />1.ClassLoader是
2011-03-30 14:43:00 12805 2
原创 基于命令模式的业务逻辑层设计
基于命令模式的业务逻辑层设计问题 1.业务发展太快,需求不停的在变 目前作的业务系统业务逻辑非常复杂,网站承载的用户访问量也在逐渐增大,更要命的是需求的不确定性,天天都有新需求,每次的改动量都比较大,而且很多时候几个团队拉同一个分支来开发以满足业务发展的需求解决方案 2.系统架构设计不合理,完全没有什么开闭原则,面向对象设计基本为0,看不到设计的影子 相信大多数开发业务系统的同学都遇到同样的问题,就是当我们要搭建一个XX系统时,大家第一想到的都是ssh,三个框架各司其职,三层结构也很清晰,w
2011-03-20 18:42:00 2892 2
原创 ibatis连接insert到mysql数据库主键自动返回
<br />设计表时mysql的表主键设置为自增长类型,然后就在ibatis中配置了以下的sql语句(这个表有个名字为id的自增长主键id)<br /><!-- 创建用户信息 --><insert id="createUser" parameterClass="userAlias"><!--[CDATA[ insert into user (name, password, email,
2011-03-20 01:11:00 6004 1
原创 missing com.sun.tools.jar
在Ubuntu下安装m2eclipse插件后,pom文件总是报错missing com.sun.tools.jar,看了一下解决方案,只要在eclipse的安装目录下的eclipse.ini文件中加上一个-vm参数(加粗部分),参数的值为$JAVA_HOME/bin目录,重启一下eclipse就正常了openFile-vm/usr/lib/jvm/java-6-openjdk/bi
2011-03-18 13:49:00 1302
原创 java日志系统学习--核心类功能及类图
做过系统的同学都应该做过日志操作,用于打点,记录异常,比较常用的是apache的common-logging框架和apache的log4j框架,但是这篇文章不是介绍这些上层的框架,而是解释这些框架底层调用的java自带的日志框架1.包结构 位于java.util.logging下,20个类左右,体积很小2.核心类图以及关联关系 Logger类,这个是用来记录日志的核心类,主要功能正如其名,记录日志 LoggerManager类,用来日志对象,读取系统配置(%JAVA_HOME%/lib/loggin
2011-03-17 15:50:00 2312
原创 Junit源码分析
junit是我们平时开发中天天用到的测试框架,为了了解器内部隐藏的机关,特意分析了一下源码,这里我们用的是Junit3.8版本。1.包的划分 junit.awtui,这个是junit的awt实现的ui界面组件 junit.extensions这个是junit核心功能之外的扩展点,对TestCase的装饰,Demorator模式的很好的例子 junit.framework,这个是junit的核心功能,像我们平时常用的TestCase,TestSuit类都是在这的,还有Assert类,提供了我们测试中常用
2011-03-16 19:45:00 2936
原创 提高网站性能的几点经验
网站性能优化的几点最佳实践1.动静分离 动是指网站的动态内容,如jsp文件,这些东西交给tomcat或jboss来处理 静是指静态的html,js,css,image,这些东东交给apache来处理,因为tomcat等web容器来处理静态内容时效果不是很好2.镜像 对于大型的网站,考虑到那方和北方的用户访问时可以自动切换到相应的网通/电信机房3.静态内容缓存 如静态的html页面,把他们缓存起来,可以在服务器端做缓存,也可以在客户端缓存,合理设置客户端缓存的时间(Expire Date)4.js和c
2011-03-15 08:47:00 895
原创 数据库设计的几条最佳实践
以下几条经验是我在几年工作中总结出来的,而且现在工作中一直在使用的原则1.减少关联查询的表数量,控制在3个以内2.表设计时能冗余就冗余,数据的一致性靠业务逻辑去控制3.忘掉外键,不要依靠底层db给你检查数据的不一致,同上(忘掉书本里的那些概念吧,听起来有些叛逆~)
2011-03-14 22:09:00 1652 1
原创 基于线程实现的生产者消费者模型(Object.wait(),Object.notify()方法)
需求背景利用线程来模拟生产者和消费者模型系统建模这个系统涉及到三个角色,生产者,消费者,任务队列,三个角色之间的关系非常简单,生产者和消费者拥有一个任务队列的引用,生产者负责往队列中放置对象(id),消费者负责从队列中获取对象(id),其关联关系如下方案1因为是多线程操作,所以对任务的存取都要使用线程同步加锁机制,看一下我们的TaskQueue类,两个主方法都加了synchronized修饰,这就意味着,一个时间点只可能有一个线程对这个方法进行操作TaskQueue类代码package com.crazyc
2011-03-14 16:27:00 1370
原创 一个基于Socket的http请求监听程序实现
首先来看以下我们的需求:用java编写一个监听程序,监听指定的端口,通过浏览器如http://localhost:7777来访问时,可以把请求到的内容记录下来,记录可以存文件,sqlit,mysql数据库,然后把接受到的信息在浏览器中显示出来要点:Socket,线程,数据库,IO
2011-03-11 23:42:00 16418 2
原创 Spring学习笔记-Bean初始化&销毁
<br /> <br />1.bean的初始化操作<br /> 1.1通过在配置文件中,设置bean的init-method方法,destory-method方法,spring框架会通过反射机制来调用<br /> java类<br />package com.crazycoder2010.spring.init;public class InitDestoryMethodBean { private String name; public String getName() { r
2011-03-07 20:43:00 3339
原创 Spring学习笔记-注入实战篇
<br /> <br />spring对各种数据类型都提供了注入支持,像java基本类型,对象,集合等,这篇文章以代码实践为主,代码注释中会解释注入的细节<br />测试类中包含了我们编程中最常见的数据结构<br />package com.crazycoder2010.spring.injection;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;p
2011-03-03 13:46:00 875
原创 Spring学习笔记-IOC概念篇
spring依赖注入DISpring的依赖注入是一种将组件间依赖关系的创建和管理独立与程序以外的技术,举例说来,类A依赖于类B,通常的做法是先new 一个A对象,让后new 一个B对象,通过调用的方法将B对象注入,但是DI提供的机制可以将这种对象依赖关系的创建配置到文件中,让框架自动创建维护这个关系,而业务系统只需要关心自身业务核心思想java bean可以简单理解成那些只有简单的get,set方法的java类(还有其他方法),spring DI中管理的bean推荐这种形式,而面向接口编程也是spring推
2011-03-02 20:26:00 1198
转载 eclipse中的Java文件自动根据svn版本号生成注释
经常在java代码中看到以下的注释($Rev: $Date),是不是很酷,怎么生成的呢?/** * A FilterChain is an object provided by the servlet container to the developer * giving
2011-03-01 22:16:00 3099 1
基于Freemarker模板技术的邮件发送模块设计
2011-07-24
大型网站公共页头页脚怎样在多个站点之间共享
2016-10-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人