一、前言:1 G6 i4 x, {" k. H- {/ S* S
为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平。你的一个决定会影响团队未来的几年。要考虑方面太多:1 H, F: d6 P5 H
1、简单易用,以提高开发效率。使小部分的精力在框架上,大部分的精力放在业务上。) v* G; c4 D, w1 z* Z
2、性能优秀,这是一个最能吸引眼球的话题。% N O" l" c) t3 x8 F
3、尽量使用大众的框架(避免使用小众的、私有的框架),新招聘来的开发人员有一些这方面技术积累,减低人员流动再适应的影响。 J2 `5 I a; r8 p+ y# a) Y; Y0 Q
% n/ }+ p, A% x7 W |& B! W1 s
如果你还在为这件事件发愁,本文最适合你了。选择spring MVC吧。 B9 V- d% \8 \! W
- Q& }. X( ~* Y2 ?# ^Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对struts 2的超越。现在越来越多的开发团队选择了Spring MVC。/ `$ y' c4 M: w4 k3 k
* L J/ T$ P* h
Struts2也是非常优秀的MVC构架,优点非常多比如良好的结构,拦截器的思想,丰富的功能。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降,应避免使用这些功能。而Struts2的多层拦截器、多实例action性能都很好。/ G# S0 ?- j& k
: e l( b+ K$ B# @* cSpring3 MVC的优点:4 G+ |$ X0 f8 j9 K s$ ^8 f# @9 ]$ U
1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。% M, v+ E7 ^6 f G8 j, U5 j
2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分) - o+ [, `6 ]0 y- d s% G3、Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。 } A2 t, k9 H2 M 9 Z, c2 ?& W3 F/ C* r, k( IStruts2的众多优点:; j7 Y5 ]6 ?* ~9 p
1、老牌的知名框架,从Struts1起积累了大量用户群体。技术文档丰富。! X: A% N; y$ u1 f, ?7 p: m) `& L
2、其它方面略... " |. u$ k( N) J2 G
============================================================== / U& b k5 \7 y3 `! X什么是mybatis S% A8 _0 ^$ U7 ^# F! R- l4 ^3 t
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. $ h6 }0 u& y! q8 u7 \* U2 p: S# L; u6 r* }) m
orm工具的基本思想- a7 V N6 l8 v9 {$ _$ E' ^4 K; v' T4 e( i
无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:2 P8 X( ?: A9 m* s+ P. @9 y$ `! j+ O- e
1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.; U/ K2 c- U1 \8 f" ^9 ^& v7 ]
2. 由sessionfactory 产生 session& v/ y* W8 g; g* B$ e
3. 在session 中完成对数据的增删改查和事务提交等. 1 v' a4 `' U" S# o$ z Y7 n' C4. 在用完之后关闭session 。: V0 o+ ?3 X2 r4 y+ w% X# S
5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 - H/ }0 g5 G5 m/ t2 P! ~0 u/ U5 A0 R! }, h
项目说明:实现了用户登陆demo。7 `1 @. B" |( }6 q0 X& N; W
项目配置说明: - J+ v; P; {8 L& Fweb.xml:, ~/ S" f7 W; ^' r; H1 f1 o+ o) |
<?xml version="1.0" encoding="UTF-8"?> + @8 n- B# m4 b6 Z8 z ~4 e