JAVA编程
文章平均质量分 84
elysee2008
本人涉及JAVANETIOS等平台,现从事移动支付平台Android企业应用IOS应用windowphone应用OA办公系统开发定位系统等系统开发,涉及行业有电信网游移动平台企业应用项目管理等领域,擅长JavaEENETandroidwindowphoneIOS数据库及Web前端HTMLCSSJquery等开发。对系统架构设计领域驱动开发软件工程数据库开框架有浓厚兴趣。
展开
-
Spring框架学习【AOP基础】
1.AOP基本概念:Aspect-Oriented Programming,面向方面编程的简称,Aspect是一种新的模块化机制,用来描述分散在对象、类或方法中的横切关注点(crosscutting concern),从关注点中分离出横切关注点是面向方面程序设计的核心所在。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领原创 2014-01-20 13:07:59 · 1089 阅读 · 0 评论 -
Spring框架学习【IoC容器高级特性】
1.通过前面4篇文章对Spring IoC容器的源码分析,我们已经基本上了解了Spring IoC容器对Bean定义资源的定位、读入和解析过程,同时也清楚了当用户通过getBean方法向IoC容器获取被管理的Bean时,IoC容器对Bean进行的初始化和依赖注入过程,这些是Spring IoC容器的基本功能特性。Spring IoC容器还有一些高级特性,如使用lazy-init属性对Bean预初始原创 2014-01-20 08:34:45 · 1553 阅读 · 2 评论 -
Spring框架学习【配置数据源三种方式】
1、使用org.springframework.jdbc.datasource.DriverManagerDataSource说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用。 ${jdbc.driverClassName} ${jdbc.原创 2014-01-24 15:04:58 · 1451 阅读 · 0 评论 -
spring框架学习【多数据源配置】
在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFactory的时候都是通过这个数据源访问数据库。但是现在,由于项目的需要,我们的DAO在访问原创 2014-01-17 16:21:54 · 1058 阅读 · 0 评论 -
Spring框架学习【高级特性】
1.通过PropertyPlaceholderConfigurer在Spring中加载其他外部配置文件或者属性文件:在很多javaEE工程中,Spring的角色非常重要,是一个管理其他模块和组件的轻量级容器,Spring经常需要管理Struts、Ibatis、Hibernate等,这些开源框架的配置文件就通过Spring的PropertyPlaceholderConfigurer加载在Spri原创 2014-01-17 14:21:30 · 1086 阅读 · 0 评论 -
Spring框架学习【基础知识】
1.在java开发领域,Spring相对于EJB来说是一种轻量级的,非侵入性的Java开发框架,曾经有两本很畅销的书《Expert one-on-one J2EE Design and Development》和《Expert one-on-one J2EEdevelopment without EJB》是java高手进阶必看的宝典,Spring就是从这两本书的理论发展起来的。Spring主要原创 2014-01-17 12:36:43 · 1980 阅读 · 0 评论 -
spring框架学习【多数据源配置优化】
在前面我写了《spring框架学习【多数据源配置】》,通过设计模式中的Decorator模式在spring框架中解决多数据源的问题,得到了许多网友的关注。在与网友探讨该问题的过程中,我发现我的方案并不完善,它只解决了一部分问题。总结多数据源的问题,其实它需要分为以下三种情况:各个数据源的数据结构不同、各个数据源的数据结构相同、各个数据源的数据结构部分相同又有部分不同。对于第二种情况,各个数据源原创 2014-01-17 17:00:03 · 1146 阅读 · 0 评论 -
Spring框架学习【数据源和数据库连接池配置】
1.在java开发领域,Spring相对于EJB来说是一种轻量级一、 数据源的配置: * 与 Hibernate 集成最常见的一种: classpath:hibernate.cfg .xml原创 2014-01-24 14:22:09 · 1484 阅读 · 0 评论 -
Spring整合Hibernate【Session管理】
在使用Spring进行系统开发的时候,数据库连接一般都是配置在Spring的配置文件中,并且由Spring来管理的。在利用Spring + Hibernate进行开发时也是如此。下面是一个简单的Spring + Hibernate Dao的例子:程序代码public class DaoReal extends HibernateDaoSupport implements Dao {原创 2014-01-24 13:01:39 · 1331 阅读 · 0 评论 -
深入理解java虚拟机【并发编程三特性】
Java的并发编程是依赖虚拟机内存模型的三个特性实现的:(1).原子性(Atomicity):原子性是指不可再分的最小操作指令,即单条机器指令,原子性操作任意时刻只能有一个线程,因此是线程安全的。Java内存模型中通过read、load、assign、use、store和write这6个操作保证变量的原子性操作。long和double这两个64位长度的数据类型jav原创 2014-01-16 08:32:18 · 1301 阅读 · 0 评论 -
深入理解java虚拟机【Java内存结构】
ava虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下:其中方法区和堆是由所有线程共享的数据区。Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。(1).程序计数器:是一块较小的内存空间,其作用可以看作是当前线程所执行的字节码的行号指示器,字节码解析器工作时通过改变程序计数器的值来选取下一条需要执行的字节码指令。程序原创 2014-01-14 15:40:22 · 1104 阅读 · 0 评论 -
Spring框架学习【Annotation 介绍】
1.使用 @Repository、@Service、@Controller 和 @Component 将类标识为 Bean:Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository 注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO 类上即可。同时,为了让 S原创 2014-01-20 08:36:24 · 1406 阅读 · 1 评论 -
Spring框架学习【解析和注入注解配置的资源】
1.类内部的注解,如:@Autowire、@Value、@Required、@Resource以及EJB和WebSerivce相关的注解,是容器对Bean对象实例化和依赖注入时,通过容器中注册的Bean后置处理器处理这些注解的。2.Spring中处理注解的Bean后置处理器:当使用Spring的注解功能时,在Spring配置文件中添加如下配置开启Spring的注解处理器:[xh原创 2014-01-20 08:41:43 · 1793 阅读 · 0 评论 -
Spring框架学习【IoC定位Bean资源】
1.IoC容器初始化:Spring的IoC容器初始化包括:Bean定义资源文件的定位、载入和注册3个基本过程。(1).Bean定义资源文件的定位:Bean定义资源文件定位由ResourceLoader通过统一的Resource接口来完成,Resource接口将各种形式的Bean定义资源文件封装成统一的、IoC容器可进行载入操作的对象。(2).Bean定义资源文件的载入:Bean原创 2014-01-19 12:24:53 · 1056 阅读 · 0 评论 -
Spring框架学习【HibernateTemplate对Hibernate的封装】
1.Spring中,不提供具体的ORM实现,而只是为应用提供对ORM产品的集成环境和使用平台,Spring将Hibernate的会话工厂通过IoC容器管理起来,并且将数据源注入,同时Spring为Hibernate提供了更上层的API封装,方便应用调用,本文通过分析相应源码了解Spring对Hibernate支持的实现。2.AbstractSessionFactoryBean管理Hiberna原创 2014-01-21 08:48:17 · 1683 阅读 · 0 评论 -
Spring框架学习【JdbcTemplate封装Jdbc】
1.Spring中使用JdbcTemplate封装对Jdbc的支持,使用Spring JdbcTeamplate的例子如下:(1).假设如下SQL表中有数据username=test1,passwd=test1,address=test1:[java] view plaincopyprint?CREATE TABLE `login` ( `usern原创 2014-01-21 08:47:00 · 1939 阅读 · 1 评论 -
Spring框架学习【Web环境中Spring的启动过程】
1.Spring不但可以在JavaSE环境中应用,在Web环境中也可以广泛应用,Spring在web环境中应用时,需要在应用的web.xml文件中添加如下的配置:[xhtml] view plaincopyprint?…… contextConfigLocation /WEB-INF/applicationContext.xml原创 2014-01-21 08:44:14 · 1782 阅读 · 0 评论 -
Spring框架学习【AOP通知以及编程式AOP 】
1.处理AOP配置的通知基本步骤:(1).获取AOP配置的通知Advice:从上一篇博客《创建AOP代理对象并对目标对象切面拦截》对Spring中采用JDK和CGLIB两种方式创建AOP动态代理的源码分析中,我们了解到,在AOP动态代理对象的回调方法中,都需要使用以下方式获取AOP配置的通知,并将获取到的通知和目标对象、代理对象等一起封装为ReflectiveMethodInvocatio原创 2014-01-21 08:40:56 · 952 阅读 · 0 评论 -
Spring框架学习【创建AOP代理对象并对目标对象切面拦截】
1.Spring AOP的底层实现常用类:分析Spring AOP的底层实现首先要从ProxyConfig类开始,ProxyConfig是所有产生Spring AOP代理对象的基类,它是一个数据类,主要为其AOP代理对象工厂实现类提供配置属性。根据ProxyConfig的继承体系分析创建AOP代理常用类的作用:(1).AdvisedSupport是ProxyConfig的子类,它封装了原创 2014-01-21 08:38:49 · 1596 阅读 · 0 评论 -
Spring框架学习【注解扫描和读取Bean】
1.从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以取代XML配置文件。开发人员对注解(Annotation)的态度也是萝卜青菜各有所爱,个人认为注解可以大大简化配置,提高开发速度,同时也不能完全取代XML配置方式,XML方式更加灵活,并且发展的相对成原创 2014-01-20 08:38:08 · 2664 阅读 · 0 评论 -
Spring框架学习【IoC容器依赖注入】
1.当Spring IoC容器完成了Bean定义资源的定位、载入和解析注册以后,IoC容器中已经管理类Bean定义的相关数据,但是此时IoC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况发生:(1).用户第一次通过getBean方法向IoC容索要Bean时,IoC容器触发依赖注入。(2).当用户在Bean定义资源中为元素配置了lazy-init属性,即让容器在解析注册Be原创 2014-01-19 12:39:55 · 1384 阅读 · 0 评论 -
Spring框架学习【IoC容器解析Bean】
1.通过前两篇博客的分析,我们已经了解了Spring IoC容器定位和载入Bean定义资源文件的基本过程,接下来我们要继续分析Spring IoC容器将载入的Bean定义资源文件转换为Document对象之后,是如何将其解析为Spring IoC管理的Bean对象并将其注册到容器中的。2.XmlBeanDefinitionReader解析载入的Bean定义资源文件:XmlBeanDefin原创 2014-01-19 12:37:14 · 954 阅读 · 0 评论 -
Spring框架学习【IoC容器体系结构】
1. BeanFactory类结构体系:BeanFactory接口及其子类定义了Spring IoC容器体系结构,由于BeanFactory体系非常的庞大和复杂,因此要理解Spring IoC,需要先理清BeanFactory的继承机构。2. ApplicationContext的结构体系:ApplicationContext接口是一个BeanFactory基础上封装了更多功能的,原创 2014-01-19 12:16:52 · 1123 阅读 · 0 评论 -
Spring框架学习【IoC容器载入Bean资源文件】
1.当Spring的IoC容器将Bean定义的资源文件封装为Spring的Resource之后,接下来要做的就是通过Spring的资源加载器(resourceLoader)读入Bean定义资源文件的过程。对于IoC容器来说,Bean定义的载入过程就是将Bean定义资源文件读入进内存并解析转换成Spring所管理的Bean的数据结构的过程。相对于SpringIoC容器定位Bean定义资源文件来说,B原创 2014-01-19 12:28:01 · 1269 阅读 · 0 评论 -
Struts2框架核心工作流程与原理
1、Struts2架构图 这是Struts2官方站点提供的Struts 2 的整体结构。 执行流程图 2、Struts2部分类介绍 这部分从Struts2参考文档中翻译就可以了。 ActionMapper ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于R原创 2013-12-24 22:17:43 · 964 阅读 · 0 评论 -
深入理解java虚拟机【并发编程缓存】
随着多核CPU的高速发展,为了充分利用硬件的计算资源,操作系统的并发多任务功能正变得越来越重要,但是CPU在进行计算时,还需要从内存读取输出,并将计算结果存放到内存中,然而由于CPU的运算速度比内存高几个数量级,CPU内的寄存器数量和容量有限,为了不让CPU长时间处于等待内存的空闲状态,在CPU和内存之间引入了速度接近CPU的高速缓存Cache作为CPU和内存之间的缓冲。计算机硬件并发的原理如下:原创 2014-01-16 08:29:55 · 1132 阅读 · 0 评论 -
深入理解java虚拟机【Java Class类文件结构】
Java语言从诞生之时就宣称一次编写,到处运行的跨平台特性,其实现原理是源码文件并没有直接编译成机器指令,而是编译成Java虚拟机可以识别和运行的字节码文件(Class类文件,*.class),字节码文件是一种平台无关的中间编译结果,字节码文件由java虚拟机读取,解析和执行,java虚拟机屏蔽了不同操作系统和硬件平台的差异性。如今的java虚拟机已经称为一种通用平台,不但能够运行java原创 2014-01-15 09:00:58 · 1687 阅读 · 2 评论 -
JAVA配置文件web.config【load-on-startup配置项解析】
在开发JAVA应用程序的时候,大家应该比较熟悉下面的一段配置 buildData com.cn.web.servlet.BuildDataServlet 1 buildData /buildData 我们注意到其中那段红色的配置项,这个配置项的作用是什么呢?其大致描述如下:1)load-on-startup元素标记容器原创 2014-01-11 13:15:20 · 1488 阅读 · 0 评论 -
JAVA面试精选【Java基础第三部分】
上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目,猛料还在后头呢,继续关注哦。续接上次提到的70题,本章将给童鞋们准备了13道经典题目原创 2013-12-27 08:34:21 · 994 阅读 · 0 评论 -
JAVA面试精选【Java基础第二部分】
上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目,猛料还在后天呢,继续关注哦。原创 2013-12-26 13:00:18 · 1001 阅读 · 0 评论 -
JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱。只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了。对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能。不管你是面试各个级别的JAVA工程师、架构师、还是项目经理,这个系列文章都是你最宝贵的资源,里面包括整个JAVA体系的知识,总会有你需要的内容原创 2013-12-25 23:55:16 · 1464 阅读 · 0 评论 -
SSH框架整合详细分析【执行流程】
struts1和spring有两种整合的方法 一种是action和spring bean映射;一种是将action交给spring初始化第一种方式:访问.do的URL->tomcat接收到request-〉到Struts配置文件里找对应的action-〉找到对应的action组件(Action那个类)-〉这个类对request进行一系列处理-〉调用spring提供的某个servi原创 2013-12-24 12:32:46 · 1395 阅读 · 0 评论 -
JAVA框架之Hibernate【配置文件详解】
Hibernate配置文件主要功能是配置数据库连接和Hibernate运行时所需的各种属性,配置文件应该位于JAVA应用或者JAVA Web应用的类文件中,刚开始接触Hibernate的时候,感觉Hibernate的配置既繁琐有麻烦,不知道童鞋们在学习Hibernate的时候有没有这种感觉,是不是还在怀念用JDBC连接数据库呢,但是繁琐背后隐藏着巨大的价值,下面我们将带你一探配置背后的奥秘。原创 2013-12-23 08:13:18 · 826 阅读 · 0 评论 -
JAVA面试精选【Java web部分一】
Java的基础知识点就太多了,要说也不能穷尽,这个主要是靠自己在平时的积累和项目的开发经验,外边考的多的一般是继承,多态,线程,集合等等,但是笔试或者是面试中很有可能问许多集体的内容,比如hashMap和hashTable的异同点,集合的主要框架,这些要多看资料,我的建议是到网上去多下点笔试题,看到了就会有感觉,基础知识牢靠的话,笔试很容易过。面试的时候(我只能说关于技术的部分),java web面试,首先面试官要看你有没有项目的经验,所以简历中肯定要有项目的经验。再者,简历中的项目一定要是你亲身经历的,或原创 2013-12-29 19:02:48 · 748 阅读 · 0 评论 -
JAVA框架之Spring【Spring事务详解】
spring提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。编程式主要使用transactionTemplate。省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象;声明式:主要使用TransactionProxyFactoryBean,围绕Poxy的动态代理,能够自动的提交和回滚事务。统观spring事务,围绕着两个核心PlatformTransactionManager和TransactionStatus,下原创 2013-12-30 13:28:22 · 826 阅读 · 0 评论 -
JAVA框架之Hibernate【Hibernate缓存详解】
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。原创 2013-12-30 12:42:15 · 953 阅读 · 0 评论 -
JAVA面试精选【Java算法与编程二】
在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。原创 2013-12-29 18:45:20 · 823 阅读 · 0 评论 -
Spring框架学习【Spring HTTP调用器实现远程调用】
1.Spring中,HTTPInvoker(HTTP调用器)是通过基于HTTP协议的分布式远程调用解决方案,和java RMI一样,HTTP调用器也需要使用java的对象序列化机制完成客户端和服务器端的通信。HTTP调用器的远程调用工作原理如下:(1).客户端:a.向服务器发送远程调用请求:远程调用信息——>封装为远程调用对象——>序列化写入到远程调用HTTP请求中——>向服务器端原创 2014-01-22 11:14:39 · 2237 阅读 · 0 评论 -
深入理解java虚拟机【内存溢出实例】
通过简单的小例子程序,演示java虚拟机各部分内存溢出情况:(1).java堆溢出:Java堆用于存储实例对象,只要不断创建对象,并且保证GC Roots到对象之间有引用的可达,避免垃圾收集器回收实例对象,就会在对象数量达到堆最大容量时产生OutOfMemoryError异常。想要方便快速地产生堆溢出,要使用如下java虚拟机参数:-Xms10m(最小堆内存为10MB),-原创 2014-01-14 15:52:21 · 877 阅读 · 0 评论 -
深入理解java虚拟机【垃圾回收算法】
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的内存。常用的垃圾回收算法有:(1).引用计数算法:给对象中添加一个引用计数器原创 2014-01-14 16:32:36 · 1016 阅读 · 0 评论