1

申明

1.这是草稿,关于近期所看资料的一个记录,以后慢慢整理成一片博文。

2.我是web开发小白,没接触过web开发,所以这是一篇小白的学习记录。

问题

  1. Spring MVC和Struts2MVC到底学习哪个?还是都需要学习呢?
  2. 直接抛弃SSH,学习国产的Nutz呢?
  3. 如果学习Spring 4.0 MVC,是先学习Spring 3.0的教程,还是自己去阅读Spring 4.0的Tutorial呢?

记录

1. Struts

Struts是一个幵源项目,它实现了经典的Model-View-Controller (MVC)设计模式,用于开发Java企业Web应用。它最初由Craig McClanahan创立于2000年5月份并由Apache基金会赞助,之前隶属于Apache Jakarta项目下,称为JakartaStruts,在2005年成为Apache顶级项目。

Struts的设计目标是把模型(用于业务逻辑和数据库之间交互的数据载体)与视图(呈现给客户端的HTML页面)和控制器(在模型和视图之间传递信息的实例)分离开来。

Stmts提供了控制器(一个名为ActionServlet的服务程序)并使得为视图或表现层编写模板更加容易。Web应用开发人员需要编写模型代码,并在全局配置文件stmts-config.xml中配置好模型、视图和控制器之间的关系。图1-1展示了 Struts2的MVC架构。

图1-1

2. Hibernate

Hibernate 是一个解决 Object-Relation Mapping (ORM,对象关系映射)的 Java语言库。它提供了一个在面向对象的领域模型与关系型数据库之间映射的框架。它通过允许开发人员使用高级对象处理函数而不是直接数据库访问的方法存取数据来解决对象关系阻抗不匹配的问题。
它将对象模型表示的数据映射到SQL表示的关系模型上去。Hibernate管理java到数据库的映射,提供给了数据查询和存取的方法,减少了程序员对数据持久化层相关的编程任务。图1-2展示了 Hibernate的架构。

图1-2

ORM对象关系映射

什么是持久化?是把数据保存到数据库或者某些存储设备中。在三层架构中,持久化是和数据库打交道的层次。在jsp的web开发中,经常有许多数据库连接、删除、查询等操作,在数据库相关工作中通过jdbc过于繁琐,就催生出了ORM(Object-RelationMapping),ORM作用是在关系数据库和对象之间做一个自动映射,这样在操作数据库时不需要使用复杂的sql语句,只要操作对象即可,ORM工具会自动将对象转换为sql语句操作。这样就只需要关注业务逻辑中的对象结构,而不用关心底层复杂的sql和jdbc代码。而Hibernate框架是ORM工具的一种,是关系/对象映射的解决方案(如图1-3)。

图1-3

优点

Hibernate持久层与数据库打交道的桥梁,彻底封装了JDBC,隐藏了更多的细节,有很好的移植性。JDBC语句繁琐,赋值执行我们不用再写相关代码,提高了效率,同时hibernate是一个轻量级框架(不依赖于别的运行),没有侵入性,测试简单,提高了生产力。

缺点

封装的太彻底导致不灵活,是用数据特定的东西比较不容易。对大量数据库的更新有问题,当程序大量查询统计,或批量更新无法使用数据库特性机制,例如存储过程等。

3. Spring

Spring是一个Java平台的开源应用程序框架,以其控制反转闻名。2002年10 月 Rod Johnson 在出版 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7) 一书同时发布了 Spring 的第一版。
Spring的核心是其控制反转容器,它根据开发人员在XML中配置类之间的依赖关系通过使用Java的反射机制来实现对这些对象生命周期的管理。当一个对象需要另一个类的实例时,Spring会创建它,调用其初始化函数,再把它注入到发起请求的对象中去。

Spring还提供自己的面向切面编程(Aspect-Oriented Programming, AOP)的框架,它把切面中的横切关注点模块化,同时也充分利用Spring的容器。Spring还提供数据库事务管理,配合AOP,开发人员可以在Spring的配置文件里指明切入点(可以利用正则表达式来创建匹配规则),Spring就会帮助开发人员把数据库事务管理代码插入刚才配置的切入点,从而降低了代码的稱合,让开发人员将主要精力放在业务逻辑上。
Spring是一个全功能栈(foil-stack)的应用程序框架,包括上述的三个主要功能,Spring 一共由7个模块组成,它们构建在Spring的核心容器之上。图1-4展示了 Spring的架构。使用Spring的IOC和AOP可以使项目的逻辑清晰、稱合度低,易于完成、易于修改、易于移植。

图1-4

现在Spring 4.0出来了,并且还附带推出一个能够提高开发者效率的项目,该项目就是Spring Boot,内嵌了Tomcat。
我按照官网的指南,Building a RESTful Web Service搭建了一个RESTful的WS,一点也没配置,我这种小白都会玩。。。。
查询了一下最新的Spring 4.0框架图,如图1.5所示:

图1-5

参考文献:
1. 汤承刚. “Things-Cloud-People”: 一个 “Web of Things” 实现方案[D].华东师范大学,2012年.


Kylin_Mountain
487 声望13 粉丝

少年不识愁滋味,爱上层楼。