Java
bubaxiu
这个作者很懒,什么都没留下…
展开
-
Spring @RequestMapping @RequestParam
概述继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进转载 2015-03-12 22:15:27 · 617 阅读 · 0 评论 -
Spring AOP声明式应用源码分析
Spring AOP应用主要有四种途径:1、利用ProxyFactory编程式应用;2、直接配置ProxyFactoryBean;3、配置AbstractAutoProxyCreator子类实现auto-proxy自动代理;4、通过配置Spring AOP。其中2,3,4都属于声明式Spring AOP的应用。一、ProxyFactoryBean应用举例ProxyFactoryBe原创 2014-12-29 21:57:29 · 1268 阅读 · 0 评论 -
关于JAVA的try catch finally的return返回值问题
转载自:《http://blog.csdn.net/exsuns/article/details/5217669》[java] view plaincopyclass TestTryFinallyC { public static void main(String[] args) { System.ou转载 2015-01-18 19:46:18 · 4906 阅读 · 2 评论 -
Spring AOP:基本概念,基础接口,基础类,基本流程
一、基本概念Aspect:切面就是一个关注点的模块化,如事务管理、日志管理、权限管理等;JoinPoint:程序执行的一个点,如方法的执行或者异常的捕获;Advice:在特定的连接点执行的操作,包括Before,After,Around等类型;PointCut:描述某一类指定的连接点,Advice通过联系PointCut在任何匹配PointCut的连接点执行Adivce操作;A原创 2014-12-28 21:52:11 · 1184 阅读 · 0 评论 -
Spring Expression分析
一、Spring Expression介绍 Spring Expression是Spring框架中一个强大表达式解析语言,支持在运行时动态的解析表达式给对象赋值。Spring Expression支持如下解析功能:布尔和关系运算符,正则表达式,类表达式,访问属性、数组列表,哈希表,方法调用,关系运算,赋值,调用构造函数,Bean引用,数组构造,内联列表,三元运算符,变量,用户自定义原创 2014-12-10 23:48:20 · 6532 阅读 · 0 评论 -
Spring-- Ioc 容器Bean实例化的几种场景
Bean实例化的几种场景 1、BeanDefinitionRegistryPostProcessor:标准BeanFactoryPostProcessor的扩展,BeanFactoryPostProcessor的作用是用来进一步定义注册的BeanDefinition,IoC容器本质就是Bean管理,所以BeanFactoryPostProcessor本身也是Bean,要对BeanFac原创 2014-11-23 20:32:43 · 6777 阅读 · 0 评论 -
Spring--IoC容器对非lazy-init的singleton Bean实例化过程
下面我们通过代码分析容器预实例化的实现过程:(1).先从IoC容器的初始会过程开始,通过前面文章分析,我们知道IoC容器读入已经定位的Bean定义资源是从refresh方法开始的,我们首先从AbstractApplicationContext类的refresh方法入手分析,源码如下:[java] view plaincopy//容器初始化的过程,读入Bean定义资源转载 2014-11-23 20:50:33 · 1130 阅读 · 0 评论 -
Spring源码分析--Ioc容器定位解析资源文件并注册BeanDefinition
一、资源文件定位和解析流程加载和解析资源文件是在ApplicationContext子类调用refresh()方法时执行的,整个过程就是将资源文件读入到内存中并且解析成Spring Bean对应的数据结构(BeanDefinition)。以ClassPathXmlApplicatinContext为例整个调用流程如下图:原创 2014-11-22 21:47:07 · 1138 阅读 · 0 评论 -
Spring源码阅读--AbstractApplicationContext refresh()方法调用
Spring初始化Ioc容器很重要的一个原创 2014-11-22 13:05:55 · 6510 阅读 · 0 评论 -
依赖倒置,控制翻转,依赖注入
转自《http://dotnetfresh.cnblogs.com/archive/2005/06/27/181878.html》在《道法自然——面向对象实践指南》一书中,我们采用了一个对立统一的辩证关系来说明“模板方法”模式—— “正向依赖 vs. 依赖倒置”(参见:《道法自然》第15章[王咏武, 王咏刚 2004])。这种把“好莱坞”原则和 “依赖倒置”原则等量齐观的看法其实来自于轻量级容转载 2014-12-30 13:32:29 · 554 阅读 · 0 评论 -
Java JDK动态代理解析
Java动态代理只能针对接口进行动态代理。如果需要对类进行实现代理可以使用:CGLIB,ASM等相关的操作字节码实现(在这里先只介绍下SUN 基于接口动态代理的实现)。代码如下:[java] view plaincopyimport java.lang.reflect.InvocationHandler; import java转载 2014-12-30 22:58:00 · 636 阅读 · 0 评论 -
Spring TX源码分析
Spring事务管理提供全局事务管理(依赖Java提供的JTA)和本地事务管理,Spring TX在执行流程:1、Spring IOC容器初始化时加载事务管理切面配置;2、目标类代理类生成,通过AspectJAwareAdvisorAutoProxyCreator继承BeanPostProcessor的特性生成目标类代理对象;3、TransactionInterceptor原创 2015-01-04 18:55:12 · 1526 阅读 · 0 评论 -
GC学习笔记
GC学习笔记这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收转载 2015-03-11 21:38:49 · 423 阅读 · 0 评论 -
基于nginx tomcat redis分布式web应用的session共享配置
转载自:http://www.cnblogs.com/lengfo/p/4260363.html一、前言 nginx 作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存、web server负载均衡等功能,由于其轻量级、高性能、高可靠等特点在互联网项目中有着非常普遍的应用,相关概念网上有丰富的介绍。分布式web server集群部署后需要实现sessio转载 2015-03-15 18:24:17 · 1546 阅读 · 0 评论 -
Nginx+Tomcat+Memcached实现tomcat集群和session共享
转载自:http://www.cnblogs.com/yixiwenwen/p/3578450.html一、Nginx安装 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574097.html二、memcached安装和启动 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574137转载 2015-03-15 18:29:48 · 667 阅读 · 0 评论 -
apache + tomcat集群负载均衡,Session复制
转自:http://jackandroid.iteye.com/blog/627147 无意间看到tomcat 6集群的内容,就尝试配置了一下,还是遇到很多问题,特此记录。apache服务器和tomcat的连接方法其实有三种:JK、http_proxy和ajp_proxy。本文主要介绍最为常见的JK。环境:PC2台:pc1(IP 192.168.88.118)安装了apache和t转载 2015-03-15 14:55:54 · 1360 阅读 · 0 评论 -
java多线程--避免死锁
在有些情况下死锁是可以避免的。本文将展示三种用于避免死锁的技术:加锁顺序加锁时限死锁检测加锁顺序当多个线程需要相同的一些锁,但是按照不同的顺序加锁,死锁就很容易发生。如果能确保所有的线程都是按照相同的顺序获得锁,那么死锁就不会发生。看下面这个例子:Thread 1: lock A lock BThread 2: wait for A转载 2015-03-15 10:36:17 · 791 阅读 · 0 评论 -
集群中几种session同步解决方案的比较
在集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。1. 客户端cookie加密简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。问题:session中数据不能太多,最好只有个用户id。参考实现:http://rollerweb转载 2015-03-15 18:10:46 · 716 阅读 · 0 评论 -
java并发--并发集合
在 Java 编程的早期阶段,位于 Oswego 市的纽约州立大学(SUNY) 的一位教授决定创建一个简单的库,以帮助开发人员构建可以更好地处理多线程情况的应用程序。这并不是说用现有的库就不能实现,但是就像有了标准网络库一样,用经过调试的、可信任的库更容易自己处理多线程。在 Addision-Wesley 的一本相关书籍的帮助下,这个库变得越来越流行了。最终,作者 Doug Lea 决定设法让它成转载 2015-03-14 23:32:14 · 485 阅读 · 0 评论 -
java并发--Exchanger
为了说明 Exchanger 的使用,本文假设一种场景。假设有一个连接缓存队列,有一个连接器负责创建连接,创建的连接会存储在队列里。另外一个释放连接器可以释放连接,从队列里移除连接。连接器每次会随机地创建 1 或 2 个连接。释放连接器只能每次释放 1 个连接。最后肯定会有连接队列满的时候,那时就可以进行连接队列的测试了。要实现这一种场景,可以使用 Exchanger 来实现。可以查看代码转载 2015-03-14 22:41:41 · 501 阅读 · 0 评论 -
Spring--ApplicationContext和BeanFactory区别
ApplicationContext功能一、BeanFactory是Spring中Bean管理的核心类之一,ApplicationContext为应用程序提供配置的核心接口。一个ApplicationContext提供以下功能:a、继承 Bean工厂方法来实现Bean管理,继承自org.springframework.beans.factory.ListableBeanFact原创 2014-11-19 22:46:33 · 989 阅读 · 0 评论 -
动态代理--cglib
CGlib简单介绍CGlib概述:cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。cglib封装了asm,可以在运行期动态生成新的class。cglib用于AOP,jdk中的proxy必须基于接口,cglib却没有这个限制。CGlib应用:以一个实例在简单介绍转载 2014-11-19 21:14:32 · 436 阅读 · 0 评论 -
XFire实现WebService一:使用XfireConfigurableServlet
XFire实现WebService一:使用XfireConfigurableServlet使用XFire进行web services开发有三种方式:1. 不集成Spring: 配置services.xml 文件和web.xml(配置org.codehaus.xfire.transport.http.XFireConfigurableServlet servlet)原创 2013-07-25 19:46:56 · 2705 阅读 · 0 评论 -
实现WebServices二:使用XFireSpringServlet与ServiceBean
使用XFire进行web services开发有三种方式:1. 不集成Spring: 配置services.xml 文件和web.xml(配置org.codehaus.xfire.transport.http.XFireConfigurableServlet servlet)2. Spring使用XFireSpringServlet方式。3.Spring集成使用org.sp原创 2013-07-25 21:42:44 · 2209 阅读 · 0 评论 -
Web服务和XFire实现Webservice的几种方式
Web服务和XFire实现Webservice的几种方式Web服务是构建一个分布式的,与平台无关、开发语言无关、实现无关的,可通过网络进行访问的应用程序组件。Web服务是基于XMl,SOAP和WSDL技术标准实现平台无关和语言无关web服务的。xml:WebService环境中各个层次默认的数据格式化方式。SOAP:简单对象访问协议(SOAP)是一种轻量的、简单的、基于原创 2013-07-24 17:27:15 · 1014 阅读 · 0 评论 -
JVM内存管理:内存区域和内存泄漏
JVM内存管理:内存区域和内存泄漏 之前对Java内存管理一直不是很了解,只是知道Java和C/C++对比有垃圾回收机制。在开发过程中遇到大文件读写问题,没拆分文件的情况下内存居高不下。所以借机会了解了下JVM内存管理。通过转载http://hllvm.group.iteye.com/group/wiki/2857-JVM文章学习和备忘内存区域划分和内存泄漏。转载 2013-07-23 20:21:43 · 908 阅读 · 0 评论 -
web.xml 中的listener、 filter、servlet 加载顺序
web.xml 中的listener、 filter、servlet 加载顺序1.在 web.xml 文件中不同类型的加载跟定义的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener -> filter -> servlet;测试方法:分别自定义一个listener,filter和servlet。在init(原创 2013-07-22 16:33:05 · 643 阅读 · 0 评论 -
jsp九大内置对象
一、JSP内置对象概述定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量。在JSP技术内部,已经定义好了若干个JSP内部对象,应用这些内部对象,可以实现很多很重要的功能。JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 内置对象代表内容范围request触发服务调用的请求request转载 2013-07-21 13:03:50 · 688 阅读 · 1 评论 -
Java JDK动态代理和cglib动态代理
Java JDK动态代理和cglib动态代理转自:http://m635674608.iteye.com/blog/1435221jdk的代理分为静态代理和动态代理,静态代理用的很少,一般都是动态代理,CGLIB代理是生成的目标类的子类,所以类和方法不能声明为final的,要不然就会有问题jdk的代理是必须要实现接口的,而CGLIB不是,但必须要引入jar包,sprin转载 2013-07-21 18:05:57 · 641 阅读 · 0 评论 -
servlet线程安全
很多情况下,可能会有很多并发的请求,为了提高运行效率,节省内存资源,容器采用Thread Pool. 一般情况下容器只对每个servlet生成一个实例,让他服务于说有的请求,对于客户端同时请求一个servlet,他们是被并发的处理的,并不是等上一个请求处理完成再处理下一个。如果两个请求同时到达,那么他们处理完成的时间也是差不多的。 Thread Safe In Servlet转载 2013-07-21 13:43:32 · 1223 阅读 · 0 评论 -
Java并发编程-发布和逸出
构造方法内this引用逸出原创 2014-01-11 21:05:09 · 706 阅读 · 0 评论 -
Java并发编程-ThreadLocal
在java多线程中,为保证可变数据线程安全一种方式是使用同步的形式,另外一种方式是控制数据不被多线程共享--这种数据控制方式叫做数据线程封闭。数据的线程封闭通常使用局部变量(即数据属于线程私有)或者ThreadLocal(ThreadLocal对象原则上设计其包装的数据是每个线程对应一个值,即通常所说每个线程保存一个ThreadLocal副本)。根据自己理解的谈谈ThreadLocal的一般用法和原创 2014-01-13 23:08:52 · 618 阅读 · 0 评论 -
Java内存泄露和分析
Java 内存泄露监控工具 -- JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在转载 2014-01-17 15:32:40 · 814 阅读 · 0 评论 -
Spring源码--Spring core中对Future的扩展
Spring源码分析--Spring Core util.concurrent包是Spring中对Java {java.util.concurrent.Future}的扩展,支持Future适配,FutureTask添加多个回调函数。类图如下: FutureAdapter:抽象类,充当适配器模式的适配器(Adaper)角色,将源角色Future 转换成目原创 2014-11-19 21:36:58 · 1739 阅读 · 0 评论 -
Java版邻接表
要写一个Java版的邻接表,发现连邻接表原创 2014-09-24 21:53:23 · 4851 阅读 · 0 评论 -
JVM Heap和Stack
在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题。 一般,JVM的内存分为两部分:Stack和Heap。 Stack(栈)是JVM的内存指令区。Stack管理很简单,push一定长度字节的数据或者指令,Stack指针压栈相应的字节位移;pop一定字节长度转载 2014-08-04 21:04:12 · 536 阅读 · 0 评论 -
JVM垃圾回收机制
Java语言出来之前,大家都在拼命的写C或者C++的程序,而此时存在一个很大的矛盾,C++等语言创建对象要不断的去开辟空间,不用的时候有需要不断的去释放控件,既要写构造函数,又要写析构函数,很多时候都在重复的allocated,然后不停的~析构。于是,有人就提出,能不能写一段程序在实现这块功能,每次创建,释放控件的时候复用这段代码,而无需重复的书写呢?1960年 基于MIT的Lisp首先提转载 2014-08-04 22:02:15 · 954 阅读 · 0 评论 -
TCP close_wait的内幕(转载)
最近遇到的一个关于socket.close的问题,在某个应用服务器出现的状况(执行netstat -np | grep tcp): tcp 0 0 10.224.122.16:50158 10.224.112.58:8788 CLOSE_WAITtcp 0 0 10.224.122.16:37655转载 2014-07-20 16:38:09 · 806 阅读 · 0 评论 -
tomcat6.0的大量CLOSE_WAIT解决方案
转载自:点击打开链接原创 2014-07-20 16:45:18 · 5024 阅读 · 0 评论 -
WSDL详解
WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的转载 2014-05-07 22:35:07 · 754 阅读 · 0 评论