[置顶] 博客搬家了!!!

如题:...
阅读(283) 评论(0)

[置顶] ibatis源码分析

背景:调试模式下,单步运行一个查询订单协议操作,记录了ibatis框架的执行动作,侧面剖析其原理。 一、简介: 1. dal 层的dao接口实现类通常会继承SqlMapClientDaoSupport。spring容器在初始化一个dao bean实例时,通常会注入两块信息DataSource(数据源)和sqlMapClient(主要是sql语句),这两块信息会封装到SqlMapClie...
阅读(3196) 评论(0)

[置顶] Tom哥的读书单

作为一名码仔,虽然平时工作很忙,但却从来没有停止过求知的脚步,始终保持着良好阅读习惯。正所谓“一日不读书,无人看得出;一周不读书,开始会爆粗;一月不读书,智商输给猪”。今天简单将购买过的技术书做下汇总(电子版和图书馆借阅的不计),即可温故而知新,也希望给即将踏入该领域的新人一些启迪1.《精通spring 2.x企业应用开发详解》评价:对spring的源码进行了彻底分析,深刻揭示了spring框架的...
阅读(2755) 评论(2)

[置顶] 浅谈spring——Bean的生命周期(二)

spring通过配置文件描述bean与bean之间的依赖关系,利用java的反射机制来实例化bean并建立bean之间的依赖关系。 其中BeanFactory是spring框架最核心的接口,管理不同类型的java对象,面对spring本身。 ApplicationContext建立在BeanFactory的基础之上,提供面向应用的功能,称为应用上下文,面向使用spring框架的开发者。 注:...
阅读(9099) 评论(9)

[置顶] 浅谈浏览器cookie

由于HTTP协议是无状态的,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。 此时会引用session,比如说登陆成功后,服务端会为用户开辟一块内存区域,用以存放用户这本次会话的一些内容,比如说用户名之类信息。那么就需要一个东西来标识这个内存区域是你的而不是别人的,这就是jsessionid。 然后,服务器响...
阅读(7397) 评论(18)

APNS开源包的内存泄露问题

APNS(全称:Apple Push Notification Service),主要是用于往苹果设备推送push消息通知!基本流程:今天要聊的问题集中在第4个环节,我们自己的服务器往苹果的消息中心推送通知。现状:历史原因,push的代码散落在各个应用中,随着新消息通道不断接入,开发、维护成本较高,开始考虑构建push中心,封装dubbo接口对外提供服务,对外屏蔽各种差异,将所有的push业务逐步...
阅读(1348) 评论(2)

MAT使用教程

MAT 全称 Eclipse Memory Analysis Tools 是一个分析 Java堆数据的专业工具,可以计算出内存中对象的实例数量、占用空间大小、引用关系等,看看是谁阻止了垃圾收集器的回收工作,从而定位内存泄漏的原因。什么时候会用到MAT?a) OutOfMemoryError的时候,触发full gc,但空间却回收不了,引发内存泄露b)java服务器系统异常,比如load飙高,io异...
阅读(3650) 评论(1)

jvm调优

jvm性能调优的目地:1)控制jvm的堆栈大小。比如当你的程序年轻代对象在某个时间段产生的比较多的时候,就需要控制年轻代的堆大小。同时还要控制总的JVM大小避免内存溢出2)控制GC的行为。GC是一个后台处理,但是它也是会消耗系统性能的,因此要根据运行程序的特点来更改GC行为。3)控制jvm线程的内存分配。如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的。堆大小设置-Xms   初始堆...
阅读(1037) 评论(0)

Tomcat性能优化

压力测试web压力测试的实现原理都是通过发送大量的重复的页面请求来模拟多用户对被测系统的并发访问,以此达到产生压力的目地。产生压力的手段都是通过录制或编写压力脚本,这些脚本以多进程或多线程的方式在客户端运行,这样通过人为制造各种类型的压力,我们可以观察被测系统在各种压力情况下的反映,从而定位系统瓶颈,作为系统调优的基础。目前已经市场上的性能测试工具不下一百种,从单一的开放源码的免费小工具如 Apa...
阅读(921) 评论(0)

大型系统架构演化

互联网系统一般会有几个特色标签:用户基数大、高并发高访问量、海量数据存储、业务更新频繁。看似复杂的系统也不是一蹴而就,任何事情都会经历一个由小到大的发展过程。今天我们就来看看一个系统是如何随着业务的扩张而不断演化的。1. 早期的系统由于业务简单,应用服务器和数据库都是在一台服务器。...
阅读(1179) 评论(0)

本地缓存的使用

缓存提升性能的效果是显而易见,...
阅读(1349) 评论(0)

装饰者模式&代理模式

一、装饰者模式装饰者模式,在保持原有功能不变的情况下将一个类重新装饰,使其具有更强大的功能,用一句成语形容“锦上添花”。类结构:Component:抽象组件,定义了一组抽象的接口,指定了被装饰的组件都有哪些功能。ComponentImpl:抽象组件实现类,完成了基本的功能实现Decorator:装饰器角色,持有Component的实例引用,有点递归的感觉。伪代码:Component c=new C...
阅读(799) 评论(0)

适配器模式&观察者模式

一、适配器模式适配器模式就是一个类的接口不能被客户端接受,需要转换为另一种接口,从而使两个不匹配的接口能在一起工作。类结构:Adaptee:源接口,需要适配的接口Target:目标接口,暴露出去的接口Adapter:适配器,将源接口适配成目标接口举个现实例子:Adaptee就是相机中的内存卡片,Target就是电脑,而Adapter则是USB读卡器。适用场景:比如查物流信息,由于物流公司的系统都是...
阅读(815) 评论(0)

系统性能优化常用手段

1. 尽量减少 HTTP 请求常用方法:a)将多个js(多个css)文件合成一个b)将多个图片合成一张,利用css的偏移来控制显示2. 减少文件大小精简js和css的文件大小,比如去除空格、换行符、注释,将长变量名、函数名用短字符替换等等。提高网络带宽利用率。推荐两个在线精简工具js:http://shrinksafe.dojotoolkit.org/css:http://www.cssdrive...
阅读(1011) 评论(0)

Netty小结

Netty 是一个异步的、事件驱动的网络编程框架,可以快速开发出可维护的、高性能、高扩展能力的协议服务及其客户端应用。Netty 是一个基于NIO的客户端、服务器端编程框架,使用Netty可以确保你快速简单的开发出一个网络应用。例如实现了某种协议的客户端、服务端应用。Netty简化了网络应用的编程开发过程,例如:TCP和UDP的socket服务开发。“快速”和“简单”并不意味着会让你的最终应用产生...
阅读(1303) 评论(1)

Redis缓存

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。redis支持各种不同方式的排序。与memca...
阅读(1818) 评论(0)

手机请求监控

一、背景之前大家都是做pc上的业务,通过浏览器上的url地址及webx框架映射规则,很容易判断当前的功能是访问后台的哪个类。但现在转到无线后,手机上看不到这个url地址,同时中间又夹了一层mtop,貌似手机上的功能和服务端的hsf接口直观串联起来更加困难。。。有没有什么方法可以解决这个问题??答案是肯定的二、解决方案fiddle,这个工具相信大家不会陌生,它不但能截获各种浏览器发出的HTTP请求,...
阅读(1028) 评论(0)

责任链模式

软件设计模式大致可以分为三类,共23种。创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式、访问者模式。其实模式这东西也有点虚,写代码并不一定要生搬硬套上面的模式。如何能满...
阅读(929) 评论(0)

CyclicBarrier介绍

CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一...
阅读(945) 评论(0)

策略模式&模板模式

一、策略模式策略模式通常是指完成某个操作可能会有多种方法,适用于多种场合。我们需要把每个操作方法当做一个实现策略,调用者可根据需要(特定的规则)选择合适的策略结构类图:Context:使用不同的策略环境,根据自身的条件选择不同的策略实现类来完成所需要的操作。他持有一个策略实例的引用Strategy:抽象策略,定义每个策略都要实现的方法Realize1,Realize2:负责实现抽象策略中定义的策略...
阅读(1126) 评论(1)

浅谈spring——Spring资源加载(十二)

Spring将各种形式的资源封装成一个统一的Resource接口。通过这个Resource接口,你可以取得URL、InputStream和File对象。当然,Resource对象所代表的资源可能不存在,此时InputStream就取不到。如果Resource不是代表文件系统中的一个文件,那么File对象也是取不到的。Spring通过“注入”的方式来设置资源。假如你有一个Java类:public c...
阅读(1468) 评论(0)

webx—Session框架详解

这个session框架是依赖于我们的通用service框架的。由于service框架是Webx框架的基础,所以Webx自然可以方便地使用这个session框架。对于webx之外的WEB应用 —— 例如:独立运行的JSP、由其它应用框架如webwork制作的应用 —— 我们提供了一个filter。这样所有的应用都可以使用我们的session框架,从而支持cookie-based session、be...
阅读(3058) 评论(0)

webx—CommandDispatcher分发服务

一、简介Command pattern是一套基于Spring Framework ,以Use Case为中心的框架。它糅合了几种经典的JavaEE设计模式,使应用开发者在实现Use Case时,能够更专注于商业逻辑本身。结构图:1...
阅读(1519) 评论(1)

Servlet、Filter、Listener的简介

一、   ServletServlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。 它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。javax.servlet.http.HttpServlet实现了专门用于响应HTTP请求的Servlet。自定义的servlet只需继承HttpServlet,并覆盖以下方法其中之...
阅读(1012) 评论(0)
149条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:246340次
    • 积分:4354
    • 等级:
    • 排名:第6633名
    • 原创:136篇
    • 转载:11篇
    • 译文:2篇
    • 评论:72条
    博客专栏
    最新评论