`
gao_xianglong
  • 浏览: 467784 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

详解SSJ(Spring3.x mvc + Spring3.x Core + JPA2.x)轻量级集成开发—序章

阅读更多

下一章 详解SSJ(Spring3.x mvc + Spring3.x Core + JPA2.x)轻量级集成开发—第1章 剖析IOC容器

 

序章前言

 随着时间的推移,SSH已经不再满足项目的需要,至少无法满足笔者项目的需要。时代的过渡直接决定着技术的过渡。慢慢的从N年前的SSH(Struts+Spring+Hibernare)到今天的SSJ(Spring3.x mvc + Spring3.x Core + JPA2.x),我相信大家同笔者一样感触蛮多...晚上睡觉的时候去好好回味下...

 

当然不是说Struts2.x或者是Hibernate不好,只是说很多时候客户需求决定项目技术的选向。不管你觉得好与不好,至少不是你说了算,而是客户说了算对于国外的项目,老外总是喜欢尝试用一些新颖的技术,当然这也没有什么不好,毕竟SSJ相对来说也算不上什么新东西了,只是国内使用这套标准的公司并不是特别多而已。

 

由于本章内容仅仅只是序章,所以笔者在本章只会讲解一些涉及到后续章节的概念。那么我

们就先从Spring开始吧。不知大家是否发现,Spring已经逐渐从单纯的一种技术规范实现慢慢的蜕变为企业的一站式解决方案?是的,如今整个领域模型中几乎随处可见Spring的身影,Spring贯穿了效验层、控制层、业务层甚至是持久层...笔者接触Spring至今也有多年左右了,希望本文的一些观点不会成为某些高手所为的妙论...

 

其实你完全可以将Spring理解为一个载满各种高精尖武器的“航母平台”,其平台上面承载着各式各样,足以令你眼花缭乱但却实用的技术,其覆盖率之广。如果你想用mvc,Spring为你提供有支持RESTful风格的mvc Framework,或者允许与第三方mvc 产品进行无缝整合。如果你想使用Spring的核心业务,Spring最新的3.x版本将带给你全新的体验。如果你想对权限进行控制,Spring为你提供有Spring security。如果你不想手动管理你的持久层事物,Spring为你提供有各式各样的第三方ORM 产品的整合方案,甚至还为你提供有高效的Spring JDBC(Spring JDBC仅仅只是针对传统的JDBC做了轻量级封装,熟悉JDBC的开发人员上手应该是很快的,并不会觉得复杂与麻烦)。如果你是Android的开发人员,Spring照样为你提供有基于Mobile领

域的各种规范实现。当然Spring所带来的影响力同样也是巨大的,时至今日Spring更像是驱动技术市场脚步的一匹黑马,越来越多的厂商阵营,越来越多的规范性规划,都在向Spring靠拢。

 

听了这么多,你可能会觉得Spring就是一个威力超强的高效粘合剂,不论是Spring原生的还是第三方的,Spring都可以将其进行快速且无缝的整合,一切都显得是那么顺其自然,浑然天成。Spring的最新版本为3.x,在以往版本的基础之上,Spring大幅度的简化了开发人员的编码量,更清晰的定位了配置文件的作用以及更多的Annotations支持,使得开发Spring应用将会成为一件很美妙的事情。

 

注意:

在很多年前,几乎所有的开发人员都希望将可配置型代码写进配置文件中,因为这样除了可以很好的解决代码耦合的问题,同样也可以解决系统每次更改属性都要反复部署问题。但随着时间的推移,咱们的配置文件几乎越来越庞大,文件中的内容越来越冗长,为了很好解决配置文件的瘦身问题,越来越多的开源项目又开始将配置文件中的内容移至代码中,Spring其实就是其中一个。虽然这种做法在理论上看来无非是重量级的操作,但绝非是高侵入式的,因为很多开源项目并不是直接将第三方代码侵入进咱们的业务逻辑中,而只是以Annotation的方式进行嵌入。这种侵入级别而言对于开发人员来说并不是不能接受的,并且也是某些开源项目的目标,就像.net平台一样,始终都允许只用微软的东西,说不定某些开源项目拥有技术垄断的商业嫌疑(开个玩笑)。

 

接下来我们简要的聊一聊JPA。JPA全称为Java Persistence API(Java持久化规范:作为JSR-220实现的一部分),它本身是内嵌至EJB3.x 中的一种规范,从理论上来说它也是属于J2EE规范的一种。但请你记住,JPA并不是产品,也不是技术,它仅仅只是一套优秀的ORM整合规范。笔者经常在论坛中听到很多开发人员喜欢拿JPA去和Hibernate或者Ibatis等成熟的ORM 产品进行比较,其实这完全是牛头不对马嘴,这根本就不是一回事。请记住了,规范并不是实现(规范仅是概念)

 

JPA的出现有效的整合了ORM领域的统一,现在市面山越来越多的ORM厂商在向JPA规范靠拢,比如Hibernate JPA,Ibatis JPA等等。刚刚笔者也提到过了,JPA的最大优势是标准化

,但同样也包含另外4点优势:

1、对容器级特性的支持JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。

 

2、简单易用,集成方便JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。

 

3、高效的查询能力JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询

 

4、丰富的高级特性:JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。

 

笔者绝对有理由相信在未来的几年内,JPA规范将逐渐成为主导持久化领域的中间力量,这是不可改变也不可逃避的现实。如果时至今日,你连JPA都没听过,那就麻烦你耐心的关注笔者后续的章节,笔者将会对Spring及JPA之间的技术整合点进行全方位的讲解和分析。当然如果你本身就精通于JPA及Spring,笔者也希望你对笔者的博文提出拟宝贵的意见。 

                       

                                                                                          —JohnGao

 

 

 

8
3
分享到:
评论
10 楼 gao_xianglong 2013-01-15  
楼主你好,我是刚刚从.net转到java的小菜鸟。之前.net也有很多ORM产品,但性能很差,生成的sql语句经常走不了索引,也不够智能。所以我们就自己移植了一套ibatis,手动写sql就放心多了。
现在我想把网站移植到开源平台,看到java的ORM产品应用很广泛,不知道性能行不行,会不会比.net上的ORM产品情况好得多?
我现在用的是ssm(spring + spring mvc + mybatis)
znfsky 写道
楼主你好,我是刚刚从.net转到java的小菜鸟。之前.net也有很多ORM产品,但性能很差,生成的sql语句经常走不了索引,也不够智能。所以我们就自己移植了一套ibatis,手动写sql就放心多了。
现在我想把网站移植到开源平台,看到java的ORM产品应用很广泛,不知道性能行不行,会不会比.net上的ORM产品情况好得多?
我现在用的是ssm(spring + spring mvc + mybatis)


以下建议仅代表我自己的观点。
1、.NET平台我不了解,在这里我就不下评论;
2、J2EE平台的ORM产品其实挺多,以Hibernate为例子来说吧。我相信大部分的开发人员都会说Hibernate的性能不适用于对数据实时并发性较高的应用,这么说不是没到底,因为我们都知道所有的ORM产品采用的均是对象语言,如果要执行还需要解析成SQL,最后再由数据库DBMS编译执行。这样中间多出的封装层次所带来的额外开销,从理论上来说确实不如存储过程来得直接。当然这里也不能以偏概全,从体验上来说ORM确实更倾向于开发人员的某些编码和思维习惯,性能上ORM产品一般都伴随有Cache,所以在对实时性要求不高的时候,ORM产品和存储过程性能其实差不多,甚至在某些极端情况下ORM产品的性能更优。
3、J2EE平台的ORM产品性能其实都挺不错的,不用担心太多。
4、要调整系统整体的性能,外围也很重要。
9 楼 znfsky 2013-01-15  
楼主你好,我是刚刚从.net转到java的小菜鸟。之前.net也有很多ORM产品,但性能很差,生成的sql语句经常走不了索引,也不够智能。所以我们就自己移植了一套ibatis,手动写sql就放心多了。
现在我想把网站移植到开源平台,看到java的ORM产品应用很广泛,不知道性能行不行,会不会比.net上的ORM产品情况好得多?
我现在用的是ssm(spring + spring mvc + mybatis)
8 楼 gao_xianglong 2013-01-12  
xiaoyaosheng86 写道
文章确实写的不错哦,期待你的后续了


感谢关注
7 楼 xiaoyaosheng86 2013-01-12  
文章确实写的不错哦,期待你的后续了
6 楼 gao_xianglong 2013-01-12  
duoduodeai 写道
w156445045 写道
谢谢提供,...
试问下博主,EJB+SpringMVC 这个框架组合方式怎么样啊,
谢谢。


看你个人喜好,你要是喜欢,EJB + .net都可以


5 楼 duoduodeai 2013-01-11  
w156445045 写道
谢谢提供,...
试问下博主,EJB+SpringMVC 这个框架组合方式怎么样啊,
谢谢。


看你个人喜好,你要是喜欢,EJB + .net都可以
4 楼 w156445045 2013-01-11  
谢谢提供,...
试问下博主,EJB+SpringMVC 这个框架组合方式怎么样啊,
谢谢。
3 楼 gao_xianglong 2013-01-11  
期待以后的文章,基础与技术并重才是最好。
houyujiangjun 写道
写的不错,期待以后的文章,基础与技术并重才是最好。


呵呵,后续文章应该会在下周推出,尽可能的挤时间写。
2 楼 duoduodeai 2013-01-11  
好悲催,我只会JSP+Servlet+JavaBean
1 楼 houyujiangjun 2013-01-11  
写的不错,期待以后的文章,基础与技术并重才是最好。

相关推荐

    spring-ssj.rar_spring_spring+Struts2+jpa集成

    在"spring-ssj.rar_spring_spring+Struts2+jpa集成"这个压缩包中,我们很可能会找到一个示例项目,展示了如何将Spring、Struts2和JPA进行集成。以下是这个集成过程的一些关键知识点: 1. **Spring配置**:首先,...

    Spring MVC+Spring+Spring data JPA

    Spring MVC、Spring 和 Spring Data JPA 是 Java 开发中非常重要的三个框架,它们共同构建了一个强大的企业级应用开发环境。Spring MVC 是一个用于构建 Web 应用的模型-视图-控制器(MVC)框架,Spring 提供了依赖...

    ssj(spring+Struts2+jpa)框架的集成(含jar包)

    综上所述,SSJ框架的集成利用了Spring的灵活性和控制反转,Struts2的MVC设计模式,以及JPA的数据持久化能力,为企业级应用提供了强大而灵活的开发基础。在实际项目中,开发者可以根据需求调整和扩展这个框架,以满足...

    Spring+Struts2+JPA

    **Spring+Struts2+JPA 整合详解** 在Java Web开发中,Spring、Struts2和JPA是三个非常重要的框架。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个强大的MVC框架...

    struts1.x+spring+jta集成例子(包含所有jar包)

    Struts1.x、Spring 和 JTA(Java Transaction API)是Java Web开发中常见的三大技术,它们各自在应用程序架构中承担着不同的角色。本集成例子旨在展示如何将这三者结合,构建一个完整的业务处理系统。 Struts1.x是...

    SSJ(struts2+spring+jpa)

    SSJ,全称为Struts2、Spring和JPA的组合,是Java开发中常见的Web应用程序架构模式。这个项目采用SSH框架,即Struts2作为MVC(Model-View-Controller)框架,Spring作为依赖注入(Dependency Injection,DI)和应用上...

    SSH/SSJ整合,Spring 3.1.0M1,Hibernate 3.X,struts2.1.8

    本项目结合了Spring 3.1.0M1、Hibernate 3.X以及Struts2.1.8,旨在提供一个最新的整合示例。 Spring作为核心框架,3.1.0M1是其早期的一个里程碑版本,带来了许多改进和新特性。例如,它强化了依赖注入(DI),使得...

    struts2+spring+jpa整合的完整例子(含分页)

    在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。

    Struts+spring+JPA例子

    Struts2、Spring和JPA是Java开发中的三大核心框架,它们各自负责应用程序的不同层面,协同工作能够构建出高效、可维护的企业级Web应用。在这个"Struts2.2.3+Spring3.0.5+JPA2.0"的例子中,我们将深入探讨这三个框架...

    SSJ.rar_Jap spring_ssj

    SSJ.rar_Jap_spring_ssj 是一个与Java应用程序开发相关的压缩包,它结合了Struts、Spring和JAP(可能是Java应用平台)这三种技术。这个项目可能是一个示例或者教程,展示了如何将这三个框架集成在一起以实现特定的...

    Spring2.5+struts1.2+JPA集成

    由于文件的大小限制,所需jar包请自行加入。但要注意在项目发部的时候,tomcat启动时总是报错,解决办法是把Tomcat中项目的lib文件夹下的asm-2.2.3.jar包删掉!或者把Spring的AOP Library包移除就OK了!

    ssj.rar_jpi框架_spring的jpi_struts2 jsp spring

    SSJ.rar是一个包含示例代码的压缩包,主要展示了如何集成和使用JPI(可能是Java Persistence Interface或自定义的框架)框架与Spring以及Struts2进行Web应用开发。在这个项目中,开发者可能想要演示如何在Spring中...

    JPA+Spring+Struts整合实例

    在Java企业级应用开发中,Spring、Struts和JPA(Java Persistence API)是三个非常重要的框架。它们分别负责不同的职责:Spring作为一个全能型框架,提供了依赖注入(DI)和面向切面编程(AOP),以及对其他框架的...

    spring-mvc-demo.zip

    Spring MVC 框架是Java开发中的一个核心组件,它为构建Web应用程序提供了一种模型-视图-控制器(MVC)架构。Spring框架本身提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、事务管理等,而Spring MVC则是...

    ssj整合开发jar包清单

    Spring 是一个开源的轻量级 Java EE 开发框架,其核心功能包括依赖注入、面向切面编程等。Spring 3.0 版本带来了许多新的特性和改进,如支持 HTTP 方法注解、更强大的 XML 配置等。 - **核心库**: - `spring-core...

    Struts1.3+spring2.5+JPA(hibernate) demo

    Struts1.3、Spring2.5和JPA(基于Hibernate)是Java Web开发中三个重要的框架,它们的集成使用可以构建出强大的企业级应用。这个"Struts1.3+spring2.5+JPA(hibernate) demo"提供了一个实践性的学习案例,帮助初学者...

    spring jpa操作数据库 级联数据 hibernate

    SSJ通常指的是Struts2、Spring和JPA的集成,这种架构常见于大型企业应用。通过PPTX文件"ssj框架搭建",我们可以了解到如何配置这三个框架,实现它们之间的协作。 6. **示例项目和资源:** - "JPA+-amp+Hibernate+...

    ssh+ssj+ssi jar包第一部分

    苦恼直接使用此包可以进行ssh ssi ssj 使用jpa开发时支持给中ROM,版本:struts2.1.8+spring2.5.6+ibatis2.3+hibernate3.3.2+structjson+dwr不多说了 分两部分,因为每次不超过 15M, 这些包一共 18M多 第二部分 ...

    struts2+spring2.5+jpa(基于注释)

    Struts2、Spring2.5 和 JPA 是Java企业级开发中的三大核心技术,它们共同构建了一个强大且灵活的Web应用程序框架。在这个“SSJ使用注释版”项目中,开发者利用注解的方式简化了配置,使得整个应用的搭建更加直观和...

    Spring SpringMVC Jpa整合Demo

    在JavaEE开发中,Spring、SpringMVC和JPA是三个非常重要的框架,它们的整合应用可以极大地提高开发效率和代码质量。这个"Spring SpringMVC Jpa整合Demo"就是一个典型的例子,它展示了如何将这三个框架协同工作,构建...

Global site tag (gtag.js) - Google Analytics