`
nkliuliu
  • 浏览: 210446 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多种技术框架的融合转型为一种框架的大一统(spring3.x)

阅读更多

      也许spring3.x all in one的时代来了!

      到目前为止本人java方向的编程经验已经多年了,中间曾经使用过多个技术框架,按照时间顺序(中间有交叉)分别如下:

      1,一套叫做timeless的代码框架。这套框架是2000年左右的一套东西。没有使用任何现代的类型spring之类的框架,自带有权限代码和库设 计。就是jsp+action+dao.分层不清晰,jsp和action比较混淆,dao承担了service和dao的功能。其实其实几乎没有分层概 念,jsp里也有直接调用dao和直接连库操作的。这个是先powerdesigner设计数据库,根据数据库的表直接反向生成全部代码,也是略作改动就 可以部署运行。使用时间大约1年。

      2,以andromda为基础,又经过公司实际需要改良过的一套代码生成工具,由标准的非annotion的方式spring2.x和hibernate3.x组成,自带有权限代码和库设计。我有幸负责了改良的过程。andromda这个项目在08年的时候几乎快要关张大吉,当时版本很久不再更新,页面打开都出异常代码出来,而我们的改良工作就是在08年完成的。当时异常艰难,因为用的人不多,然后文档都不全,他们自己的论坛留言都没人理你。使用时间约两年。

      好了介绍一下这个框架吧,这套框架首先要画uml图,用的工具是MagicDraw UML,然后根据uml图自动生成数据库脚本,web层,service层,和dao层,已经domain和dto,还有页面。直接部署略作改动就可以运行。

     3,自己设计的一套框架,使用了spring2.5.x和hibernate3.3.x,用maven来管理项目,spring security2.5.x来完成权限管理。后台使用extjs3.1单页面来完成。先是用powerdesigner设计整个数据库,然后用hibernate反向生成annotion的domain层。service和dao层做了合并起名为manager层。并且取消了接口原因在于部门人少不用分层开发,这样可以提高效率。manager使用泛型直接继承一个dao模板类,实现curd功能。mvc用了spring的annotion。不能直接部署使用。使用时间半年多。

     4,别人匆忙完成的一套框架,由struts2,spring3,ibatis2组成。无annotion。权限系统使用spring security3完成。为什么说匆忙呢,完成这个框架的人之前本身没有实际使用经验,而且刚完成就离职了,苦了使用者。代码没有任何生成全手工完成。使用时间目前为止3个月了。

     5,期望的框架,也就要改造的把4弄成spring3 all in one.使用sping3的annotion,前端spring mvc,dao使用spring jdbctemlate。maven来做项目管理。全手工代码。

 

 

spring3.x all in one 原因:

       对于我来说,最大原因是之前有spring mvc,jdbc template丰富的使用经验和技术积累,具有技术上的传承性!根据实际实用经验和习惯,spring3.x感觉比struts2和hibernate以及ibatis更顺手。spring3.x all in one升级维护方便,不用考虑多个框架的兼容问题。

      一,spring3.x和struts2对比:

      "spring3与struts2有很大的区别, 最近我们在struts2.1及spring3.0.2上做过压力测试, 发现struts2.1在默认的配制下存在严重的性能问题. 每秒的点击数不会超过200, 而如果用struts2的dispatchServlet去拦截带有参数的jsp如(http://localhost/myapp /my.jsp?para1=1&para2=2) 这样的url时, 在大并发时, 存在很严重的内存泄漏的问题. 用jprofile可以发现java.util.concurrent.concurrenthashmap占用了大量的内存, 同时java.util.concurrent.locks也占用了大量的内存. 原因估计为struts2里面的参数转化拦截器出了问题(没有得到求证)."以上是在坛子里摘抄的。但是性能并不是我决定替换的原因,而且现在没有此问题带来的瓶颈。

      开发之初没有struts2使用经验导致action里的实例变量随着这个类功能不断增加,接着实例变量的混乱使用不可避免,每次对象的生成也将更慢。 我承认这不是struts2本身的问题,也是有办法解决的,但是spring3.x的mvc使用方式天然的避免了这个问题。

     struts2更新缓慢,restful实现困苦,而spring3.x呢,不用说有目共睹。

    二,jdbc template和ibatis2对比:

     不考虑缓存,实际上spring jdbc template也可以缓存。 从效率比spring jdbc template比ibatis2大约快十倍。对与大数量的处理来说是更好的选择。如果有人抬杠说你可以写原生的jdbc呀,那就属于抬杠了,毕竟也要考虑到易用性。

     在使用便捷程度上讲不亚于ibatis,很容易实现对象映射。

 simpleJdbcTemplate.query(sql,
				new BeanPropertyRowMapper(Tbool.class));

 还有把sql写到java中,我个人不认为是件坏事,相对更容易控制。

   三,jdbc template与hibernate对比:

待续。。。。

 

 

 

0
0
分享到:
评论

相关推荐

    Spring+3.x企业应用开发实战光盘源码,保证可用

    《Spring+3.x企业应用开发实战》是一本深入讲解如何使用Spring框架进行企业级应用程序开发的书籍。光盘源码是作者为了辅助读者理解和实践书中所讲述内容而提供的实际代码示例,确保了读者能够在实际操作中加深对...

    Spring3.X编程技术与应用.(丁振凡)

    根据给定的信息,“Spring3.X编程技术与应用”这一标题及描述主要聚焦于Spring框架的3.x版本在软件开发中的具体应用与技术要点。Spring框架是Java领域内一个非常流行的开源框架,它提供了全面的基础架构支持,使得...

    spring4.x________

    Spring 4.x 是一个重要的Java框架,专注于简化企业级应用程序开发。这个版本的Spring框架引入了许多新特性,改进和优化,以适应不断变化的开发需求和技术趋势。在本文中,我们将深入探讨Spring 4.x的核心特性、优势...

    org.spring-framework-3.0.4. 所有jar

    org.springframework.aop-3.0.4.RELEASE.jar org.springframework.asm-3.0.4.RELEASE.jar org.springframework.aspects-3.0.4.RELEASE.jar org.springframework.beans-3.0.4.RELEASE.jar org.springframework....

    《Spring 3.x企业应用开发实战》PDF

    《Spring 3.x企业应用开发实战》是一本深入讲解Spring框架在企业级应用程序开发中的实践指南。这本书专注于Spring 3.x版本,该版本是Spring框架发展史上的一个重要里程碑,引入了许多新特性和改进,旨在提升开发效率...

    spring-mock.jar

    Classes contained in spring-mock.jar: org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi....

    Spring3.X编程技术与应用,完整扫描版

    《Spring3.x编程技术与应用》紧扣新版Spring的知识内容,结合实际应用进行讲解,书中的应用样 例具有很大的实用性。全书分3篇共21章,具体内容包括:Spring环境的安装与使用、JSP与JSTL简介、 Spring基础概念与工具...

    org.springframework.core.jar

    Spring框架是一个开源的Java平台,它为创建健壮的、易于维护的企业级应用程序提供了一个全面的解决方案。Spring的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, ...

    Spring3.X企业应用开发实战pdf扫描版+源码光盘

    《Spring3.X企业应用开发实战》是一本深入探讨Spring框架在企业级应用中的实践方法的书籍,PDF扫描版提供了一种方便的电子阅读方式,同时附带的源码光盘则让读者能够动手实践书中所讲解的技术。这本书的核心是帮助...

    spring 3.x企业应用开发实战

    Spring 3.x是Java开发者广泛使用的一个框架,用于开发企业级应用。Spring框架采用模块化的方式,将企业级应用的各个方面进行了抽象,简化了复杂性。Spring 3.x中的关键特性包括依赖注入、面向切面编程(AOP)、事务...

    spring3.x源码

    Spring 3.x 是一个历史悠久且极其重要的Java框架,它为应用程序开发提供了全面的基础设施支持,尤其是在企业级应用领域。Spring框架的核心特性包括依赖注入、面向切面编程(AOP)、事务管理、数据访问以及Web应用的...

    spring3.0.5 所有jar文件

    包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...

    Spring 3.x 企业应用开发实战 pdf

    Spring框架以提供一种全面的编程和配置模型为特点,其核心特性可以总结为依赖注入(DI)和面向切面编程(AOP)。依赖注入允许开发者实现松耦合的设计,而面向切面编程则用于将通用的业务逻辑从业务处理代码中分离...

    spring3.x企业实战完整版pdf

    《Spring 3.x企业实战完整版PDF》是一本关于使用Spring框架进行企业级应用开发的教程书籍。Spring框架是Java平台上一个开源的应用框架,旨在简化企业应用的开发。Spring框架提供了全面的编程和配置模型,能够应对从...

    Spring 3.x 企业应用开发实战 PDF与源码 高清 带书签

    Spring作为Java领域中最流行的开源框架之一,它的3.x版本为开发者提供了丰富的功能和强大的支持,使得构建复杂的企业级应用变得更为简单。本书结合PDF教程与源码,旨在帮助读者深入理解并熟练掌握Spring 3.x的核心...

    Spring1.x 和Spring2.x 版本上使用有什么区别

    Spring框架是Java开发中广泛应用的轻量级框架,它的出现极大地简化了企业级应用的开发。Spring1.x和Spring2.x版本之间的差异主要体现在功能增强、性能优化以及对其他技术的支持上。以下将详细阐述这两个版本的主要...

    org.springframework.web.jar

    1. **Spring MVC**:Spring Web模块中的关键组件是Spring MVC(Model-View-Controller),它是一种轻量级的Web MVC框架,提供了一种模式化的处理HTTP请求的方法。MVC模式将应用逻辑分为三个部分,模型用于处理业务...

    精通Spring4.x企业应用开发实战pdf+源码

    《精通Spring4.x企业应用开发实战》是一本深入解析Spring框架在企业级应用中的实践指南。这本书涵盖了Spring框架的核心概念、重要特性和实际应用,旨在帮助开发者熟练掌握Spring4.x版本的各种开发技能,以提高软件...

    Spring3.x企业应用开发实战光盘源码

    《Spring3.x企业应用开发实战》是一本深入探讨Spring框架在企业级开发中的应用书籍,其光盘源码是学习过程中宝贵的参考资料。Spring框架作为Java领域最流行的应用框架之一,以其强大的依赖注入(DI)和面向切面编程...

Global site tag (gtag.js) - Google Analytics