轻量级Java EE应用相关技术

轻量级Java EE应用以传统的JSP作为表现层技术,以一系列开源框架作为MVC层,中间层,持久层解决方案,并将这些开源框架有机的组合在一起,使得Java EE应用具有高度的可扩展性,可维护性。

一,轻量级Java EE应用的相关技术有哪些?
1.JSP,Servlet 3.x 和JavaBean及替代技术
2.Struts 2.3及替代技术
3.Hibernate及替代技术
4.Spring 4.0及替代技术

(1)JSP:最早的Java EE规范之一,最经典的Java EE技术之一,JSP充当表现层角色。

JSP和Servlet的之间的关系?
Servlet和JSP其实是完全统一的,二者在底层的运行原理是完全一样的看,实际上,JSP必须被Web服务器编译成Servlet,真正在Web服务器内运行的是Servlet。从这个意义上来看,JSP相当于一个“草稿”文件,Web服务器根据该“草稿”文件来生成Servlet,真正提供HTTP服务的是Servlet,因此广义的Servlet包含了JSP和Servlet。

Servlet 3.x:为 Java Web 开发带来了了巨大的便捷,Servlet 3.x提供了异步请求,注解,增强的Servlet API,非阻塞IO,这些功能很好的简化了Java Web开发。

JavaBean:由于JSP只负责简单的显示逻辑所以JSP无法直接访问应用的底层状态,Java EE应用会选择用JavaBean来传输数据,这些JavaBean也被称为DTO(Data Transfer Object,数据传输对象),并将这些DTO集传到JSP页面,从而让JSP可以显示应用的底层状态。

除了JSP作为表现层技术之外,还可以使用什么技术替代?
FreeMarker或Velocity技术。

(2)Struts : 全世界最早的MVC框架,其作者是JSP规范的制定者,并参与了Tomcat开发,所以Struts是Java EE应用中使用最广泛的MVC框架,拥有广泛的市场支持。

除了Struts 2.3,还有什么MVC框架可以替代?
1.Spring MVC
2.JSF

Spring MVC: 是spring框架提供的开源MVC框架,由于spring框架有极高的市场占有率,所以 Spring MVC自然也拥有不错的市场表现。

JSF:Oracle推荐的Java EE规范,拥有最纯正的血统,而且Apache也为JSF提供了MyFaces实现,这让JSF具有很大的吸引力。

注:设计理念上JSF比Struts 2理念更优秀,JSF采用的是传统RDA(快速应用开发)理念。但由于Struts早就深入人心,所以在市场占有率上JSF略逊一筹。

(3)Hibernate:开源的,轻量级的ORM框架,它允许将普通的,传统的Java对象(POJO)映射成持久化类,允许应用程序以面向对象的方式来操作POJO而Hibernate框架则负责将这种操作转换为底层的SQL操作。

Hibernate框架的由来?
传统的Java应用都是采用JDBC来访问数据库的,因为JDBC采用的是一种基于SQL的操作方式,这种操作方式与Java语言的面向对象特征不一致,所以Java EE应用需要ORM技术,通过这种技术能让Java以面向对象的方式操作关系数据库。但最早的ORM是Entity EJB且EJB的操作非常繁琐,在这种背景下Hibernate框架应运而生。

什么是JPA?
sun公司抛弃EJB 2.X规范后,引入了JPA规范。JPA规范其实是一种ORM规范,因此它的底层可以使用Hibernate,TopLink等任意一种ORM框架作为实现。
如果应用程序面向JPA编程,将可以让应用程序既可利用Hibernate的持久层技术——-因为可以用Hibernate作为实现;也可以让应用程序保持较好的扩展性——-因为可以在各种ORM技术之间自由切换。

除了Hibernate框架之外,还有什么框架可以替代?
Apache的MyBatis以及Oracle的TopLink和Apache的OJB,但是后两者没有得到广泛的市场支持。

MyBatis:由Apache组织提供的轻量级持久层框架,MyBatis允许将SQL语句查询结果映射成对象,所以也将MyBatis称为 SQL Mapping工具。

(4)spring:spring框架里充满了各种设计模式的应用,如单例模式,工厂模式,抽象工厂模式,命令模式,职责链模式,代理模式等,spring框架号称Java EE应用的一站式解决方案。spring本身提供了一个设计优良的MVC框架:spring MVC,使用spring框架则可以直接使用该MVC框架。但实际上spring并没有提供完整的持久层框架—–这可以理解成一种“空”。这种“空”这是spring框架的魅力所在——spring能与大部分持久层框架无缝整合:Hibernate?JPA?MyBatis?TopLink?甚至能直接使用JDBC,无论使用哪种持久层框架Spring都会为你提供无缝的整合以及极好的简化。

spring框架有没有什么替代的框架?
spring更像一种中间层容器,向上可以与MVC框架无缝整合,向下可以与各种持久层框架无缝整合,具有强大的生命力。所以轻量级Java EE应用通常都不会拒绝使用Spring。实际上轻量级Java EE这个概念也是由Spring框架衍生出来的,spring框架暂时没有较好的替代框架。

二,自己抽象的框架和第三方框架哪个更好?
这个问题就见仁见智了,通常而言,使用第三方框架更稳定更有保证,因为第三方框架往往经过了更多人的测试。而使用自己抽象的框架,则更加熟悉底层运行原理,出了问题能更好的把握。如果不是有特殊的理由,推荐使用第三方框架,特别是那些流行的,广泛使用的,开源的框架。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值