a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 66|回复: 0

[基础知识] JAVA基础:JavaEE开发四大常用框架说明

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
我们对Java EE的框架有过良多介绍, 本文将对Java EE中常用的四个框架做一下系统的归纳,但愿巨匠喜欢。5 G8 T( H  _. o: P
    Struts6 O/ f" J5 @' h. C  s+ f
    Struts是一个基于Sun Java EE平台的MVC框架,主若是采用Servlet和JSP手艺来实现的。5 s; O0 y  h& L: X% p  [: v8 K
    Struts框架可分为以下四个首要部门,其中三个就和MVC模式慎密相关:
( K8 r% y, P  T8 v9 x    1、模子 (Model),素质上来耸ё仝Struts中Model是一个Action类(这个会在后面具体谈判),开发者经由过程其实现商业逻辑,同时用户请求经由过程节制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的设置装备摆设信息的。
* C, a* Y) I! O' `" }    2、视图(View),View是由与节制器Servlet配合工作的一整套JSP定制标签库组成,操作她们我们可以快速成立应用系统的界面。
0 S  N' m; Y* s* u) ?3 M    3、节制器(Controller),素质上是一个Servlet,将客户端请求转发到响应的Action类。
  s5 ^: O" V8 i& }8 j    4、一堆用来做XML文件解析的工具包,Struts是用XML来描述若何自动发生一些JavaBean的属性的,此外Struts还操作XML来描述在国际化应用中的用户提醒信息的(这样一来就实现了应用系统的多说话撑持)。$ C, M+ t  v" x/ s
    Spring
4 C5 o" Q# G- y9 M+ d: u6 H! B% ~! p    Spring是轻量级的Java EE应用轨范框架。* |) ^) r' `/ o3 i2 _
    Spring的焦点是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的方针是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以自力,也可以使用其它的框架方案加以替代,Spring但愿供给one-stop shop的框架整合方案 。
% Q4 A8 ^, ?) n- {# S* M3 q2 C0 ~7 W    Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它感受所提出的框架夠新夠好,例如Spring有自己的 MVC框架方案,因为它感受现有的MVC方案有良多可以改良的处所,但它不强迫您使用它供给的方案,您可以选用您所但愿的框架来庖代其子框架,例如您仍可以在Spring中整合您的Struts框架 。
# H. ]6 `3 K/ w( D    Spring的焦点概念是IoC,IoC的抽象概念是「依靠关系的转移」,像是「高层模组不应该依靠低层模组,而是模组都必需依靠于抽象」是 IoC的一种默示,「实现必需依靠抽象,而不是抽象依靠实现」也是IoC的一种默示,「应用轨范不应依靠于容器,而是容器处事于应用轨范」也是IoC的一种默示。
! z) y0 s) ]+ f$ N7 @* Y    Spring的架构性的益处
6 T7 w# \" `9 {$ l: y7 w1 g* n/ L    Spring能有用地组织你的中心层对象,无论你是否选择使用了EJB。如不美观你仅仅使用了Struts或其他的包含了Java EE特有APIs的framework,你会发现Spring关注了遗留下的问题。
* k# I# X7 k' i- g; c. j- a9 G/ \    Spring能消弭在良多工程上对Singleton的过多使用。按照我的经验,这是一个首要的问题,它削减了系统的可测试性和面向对象特征。( V# {0 z- a2 `! D. g$ y
    Spring 能消弭使用各类各样名目的属性定制文件的需要,在整个应用和工程中,可经由过程一种一致的体例来进行设置装备摆设。曾经感应迷惑,一个特定类要查找迷幻般的属性关头字或系统属性,为此不得不读Javadoc甚至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置节制的使用(不才面谈判)辅佐完成这种简化。Spring能经由过程接口而不是类促进好的编程习惯,削减编程价钱到几乎为零。) o" C. H" o- [2 E
    Spring被设计为让使用它建树的应用尽可能少的依靠于他的APIs。在Spring应用中的大大都营业对象没有依靠于Spring。
9 h9 N# V/ c" l2 I. o9 Y" r% R8 J    使用Spring构建的应用轨范易于单元测试。" i" y0 j3 h. y8 }! x* ^2 O
    Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现营业接口,却不会影响挪用代码。9 o) I  i  y) Y7 E0 s8 a- Z
    Spring辅佐你解决良多问题而无需使用EJB。Spring能供给一种EJB的替代物,它们适于良多web应用。例如,Spring能使用AOP供给声明性事务而不经由过程使用EJB容器,如不美观你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。
& h( i* n1 r6 ^% N: m    Spring为数据存取供给了一致的框架,非论是使用JDBC或O/R mapping产物(如Hibernate)。" i8 x8 H8 N% l1 _* U9 \
    Spring确实使你能经由过程最简单可行的解决法子解决你的问题。这些特征是有很大价值的。: E! S, P4 g3 b" \- d, u9 j
    Spring能做什么?4 V# N) c1 _/ p
    Spring供给良多功能,在此我将快速地依次展示其各个首要方面。
0 I5 ~0 @0 a, I    使命描述:
4 U. ^- n1 |' P# ?" }# |' ?    首先,让我们明晰Spring规模。尽管Spring笼盖了良多方面,但我们已经有清嚣张的概念,它什么应该涉及和什么不应该涉及。
( U, q# P% G' S2 J- ^: Z: }    Spring的首要目的是使Java EE易用和促进好编程习惯。
+ G; m' j9 J) E9 q8 ~# G2 F" m2 F    Spring 不从头开发已有的工具。是以,在Spring中你将发现没有日志记实的包,没有毗连池,没有分布事务调剂。这些均有开源项目供给(例如 Commons Logging 用来做所有的日志输出,或Commons DBCP用来作数据毗连池),或由你的应用轨范处事器供给。因为同样的的原因,我们没有供给O/R mapping层,对此,已有有好的解决法子如Hibernate和JDO。% r$ t/ q2 ~; J5 v# T
    Spring的方针是使已存在的手艺加倍易用。例如,尽管我们没有底层事务协调措置,但我们供给了一个抽象层笼盖了JTA或任何其他的事务策略。$ a  s% p: \1 s8 |* z$ I
    Spring没有直接和其他的开源项目竞争,除非我们感应我们能供给新的一些工具。例如,象良多开发人员,我们从来没有为Struts欢快过,而且感应在MVC web framework中还有改良的余地。在某些规模,例如轻量级的 IoC容器和AOP框架,Spring有直接的竞争,可是在这些规模还没有已经较为风行的解决方案。(Spring在这些区域是开路先锋。)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-15 19:12 , Processed in 0.200450 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表