TA的每日心情 衰 2021-2-2 11:21
签到天数: 36 天
[LV.5]常住居民I
一、前言:' J) ^& M, y7 Q- z
为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平。你的一个决定会影响团队未来的几年。要考虑方面太多:! b0 \: j6 q3 ~
1、简单易用,以提高开发效率。使小部分的精力在框架上,大部分的精力放在业务上。! s, t. n2 f8 e& _
2、性能优秀,这是一个最能吸引眼球的话题。" u l; x" b1 ?/ o( k, H6 v
3、尽量使用大众的框架(避免使用小众的、私有的框架),新招聘来的开发人员有一些这方面技术积累,减低人员流动再适应的影响。4 O, D# m, _+ r& @0 [$ a( r
* F) T) b+ d0 Z$ a 如果你还在为这件事件发愁,本文最适合你了。选择spring MVC吧。7 i5 {& S+ ?% c3 v0 p0 a. G
5 T* M2 x' R8 L) [
Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对struts 2的超越。现在越来越多的开发团队选择了Spring MVC。
- a# K% D8 ?7 J; X5 P
8 v2 H2 p9 N+ C' Z# G { Struts2也是非常优秀的MVC构架,优点非常多比如良好的结构,拦截器的思想,丰富的功能。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降,应避免使用这些功能。而Struts2的多层拦截器、多实例action性能都很好。" B1 X2 P8 Z% Y0 e( `& T5 C
. E B5 R$ l, G |( @ v0 Y Spring3 MVC的优点:. I! Z: l7 I; L7 {
1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。
/ `! q0 K' M% a. C 2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)$ d" W' m- d m. W1 H! B
3、Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。
" X) l7 I3 s' x# K' G8 l2 M0 E7 c1 w : p0 T7 U- G4 w4 q
Struts2的众多优点:
- W" N# Y$ K7 S2 f" k$ l 1、老牌的知名框架,从Struts1起积累了大量用户群体。技术文档丰富。
; [" [8 ^' Q& D' a) _ 2、其它方面略...
X# a. L% q) ^. i9 g4 o ==============================================================* a g4 x# G. _ k8 Q
什么是mybatis
/ z; l" P/ j- | MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和java 的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.0 a3 ~ x' _% L
L' B9 z0 y" ?' @$ t$ P1 d. O0 M( x
orm工具的基本思想
5 X& y7 X$ O& u 无论是用过的hibernate ,mybatis,你都可以法相他们有一个共同点:
- Q+ @+ @6 P- s! D+ w 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.8 r( K8 z+ b. Y* W
2. 由sessionfactory 产生 session8 x! ]1 @ Q, i/ d; k
3. 在session 中完成对数据的增删改查和事务提交等.& D! U; M% [2 r: Z: V C: m
4. 在用完之后关闭session 。
; s7 a- Z" c! F0 o! n 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。: F+ N! V6 W2 l. z- G- Z! H
( J% H" o, p% S1 y& C! E, G! M' C 项目说明:实现了用户登陆demo。
$ Q% i% Q K% p# {( d 项目配置说明:5 B/ K) y1 h3 X- ^4 b
web.xml:+ Q& Z1 ~: N9 [- j
<?xml version="1.0" encoding="UTF-8"?> ! Z2 }6 h7 D2 p ^# e' \
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
4 c) q/ R* B2 I+ F xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 8 f0 \. f# e( _5 v; `0 ?
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 0 F# m' w0 u# M Z- e
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> |/ ~2 }* o5 N/ R2 N! \+ c; p
/ ~& Y; h! {- n0 [0 ~ J7 }$ O
<!-- 监听spring上下文容器 -->
5 b' t% B& E/ q8 O# D <listener> % X# ^. O5 ]& `
<listener-class>
A1 c$ h. N+ ~$ f org.springframework.web.context.ContextLoaderListener ! m4 [# W* G0 z: f" S# o9 I/ _
</listener-class> 5 b+ t! Z$ L% V0 F! ]/ ?# T
</listener> / i+ ~) K, {( i, g6 B0 a! |
* i2 Y5 w* Y3 b( [5 k' N, Z0 H <!-- 加载spring的xml配置文件到 spring的上下文容器中 -->
* r) }6 E% L7 C0 m) F7 e# Y. ~ <context-param> 8 F9 j4 `- W, j0 d0 ~6 v, a
<param-name>contextConfigLocation</param-name>
0 g0 e! s) m" N! L$ @ <param-value>classpath:*-context.xml</param-value>
3 D) Y/ r8 W# ], r8 G </context-param> : O* ?5 D |, \ k; s* f
( @8 M/ R8 D. q" h: ? X
<!-- 配置Spring MVC DispatcherServlet -->
2 N: ~0 Z& k0 c) r1 k. _; z <servlet> 8 u* U5 _5 u3 ^9 s
<servlet-name>MVC</servlet-name> $ q3 d8 x$ F7 t% Q$ a2 f/ v2 I
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
1 i. }4 b; H3 t2 ~$ K, E <!-- 初始化参数 -->
; I4 {: s) m$ t; {8 ] <init-param> ( z; S4 i, L K' B0 V7 I: R$ T
<!-- 加载SpringMVC的xml到 spring的上下文容器中 --> 6 W+ z+ ?& U6 c/ p* P
<param-name>contextConfigLocation</param-name> / x3 m# y0 d- Z9 L; Y
<param-value> A+ w( J% l: d+ m4 z/ o( }7 ~3 K
/WEB-INF/classes/mvc-context.xml
/ q" E _0 T7 C* C! O. b </param-value> w8 v) v4 I* q! h
</init-param>
* n# D" Q; c. ^0 O3 l2 ?) ~ <load-on-startup>1</load-on-startup>
9 L' k+ X, _! n/ y0 ?! @: u9 s7 X </servlet>
6 r/ T: A6 s/ p: @ C 8 [2 _; _. d/ A; A( q+ I& I) z: o
<!-- 配置DispatcherServlet所需要拦截的 url -->
0 W2 }, [+ t. y <servlet-mapping>
/ w4 e0 N3 J/ @ <servlet-name>MVC</servlet-name>
% Q( ~3 q2 b% T& { <url-pattern>*.do</url-pattern>
' F" T. r! {/ r | </servlet-mapping>
! E: Y) E: K# u$ `5 b4 n, m( f8 s+ ? . K: m) U5 ~. e2 I2 i
<welcome-file-list>
0 r" W1 m& K7 n: k S6 y <welcome-file>index.jsp</welcome-file> 9 c, h \4 k0 e3 U) X) V
</welcome-file-list>
+ C6 ^) n/ C# l- S " V9 Z) V: B, t7 Y1 e8 s2 L" s: S7 e
! I `2 [& |. f4 [1 X' p </web-app> 复制代码 # {4 d! C+ K3 y$ z( x
mvc-context.xml:
: o' V8 y1 _+ C# q9 E$ Y <?xml version="1.0" encoding="UTF-8"?>0 N @6 O9 w2 i: `# l' i
<beans xmlns="http://www.springframework.org/schema/beans"
# S- ]: P0 K& ~ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"' s; H, K8 a) C% `" E p
xmlns:context="http://www.springframework.org/schema/context"
, m* {- z7 L& y) @. Z xsi:schemaLocation="http://www.springframework.org/schema/beans
4 K! y8 C$ Q( n" d http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ \, D) m7 |' b/ f- k1 `! C0 } http://www.springframework.org/schema/context
# I& E4 H9 a" | http://www.springframework.org/schema/context/spring-context-3.0.xsd">
8 S! ]/ F, k2 O0 {$ t' ?
# r$ S7 O6 z, ]2 v0 `* B <context:component-scan base-package="com.wg.*" />
. }; w& m* I# t' G4 \+ R0 G5 m; M 5 B$ p8 g6 l$ X2 c3 g3 Q! ]
<bean id="viewResolver"7 q7 J, F- |* r& d% W
class="org.springframework.web.servlet.view.UrlBasedViewResolver">" \6 ?6 z+ H9 h
<property name="viewClass"
- `5 _: T; W9 f value="org.springframework.web.servlet.view.JstlView" />
& m) I5 I& U* U0 R5 Q8 K1 Y/ ]6 t <property name="prefix" value="/page/" />
* h$ x; ]$ i Y5 A; d& G <property name="suffix" value=".jsp" />. m0 N3 b' B' H0 y$ G
</bean> r! `* R* N& y, \/ j& ^
</beans>
# `: E' k! K/ k0 C9 L' I& }1 f 复制代码
2 J) Z) d% t9 m mybatis-config.xml:$ X3 N# T$ W5 y- L) o
<?xml version="1.0" encoding="UTF-8"?>
, U6 y- O! ~% O7 c' `5 X5 T <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
s3 o6 J) X! d K/ ?/ J "http://mybatis.org/dtd/mybatis-3-config.dtd">
5 z9 b2 m4 C( }1 H$ |2 P) K <configuration>
- ?( N1 X2 R( S3 h4 d% O <typeAliases>/ I1 Y* E4 f" g: D2 z; V9 n
<package name="com.wg.bean" />9 U* }; n0 y6 u, Y B8 g
</typeAliases>7 x2 p' Q9 Z" `/ y5 V) e9 ^
<mappers>$ j5 V( J0 j! a
<mapper resource="com/wg/bean/UserMapper.xml" />1 A7 I* |5 d' O# a- }) {/ M- m1 {% _+ m
</mappers>
. ]) m7 ^9 i% k. ~, G1 M o* V </configuration> 复制代码 root-context.xml:
4 f5 s6 G) { e <?xml version="1.0" encoding="UTF-8"?>
2 ?7 s; l" J4 |- }2 Z5 t3 d5 S. S <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
) n- Z; T& A8 U \! T "http://mybatis.org/dtd/mybatis-3-config.dtd">
% e4 i9 q! B9 @: F, k: {% c0 X2 U) ? <configuration>& E4 c* O! t) n
<typeAliases>5 a7 X2 b3 P/ |! K6 o7 ?
<package name="com.wg.bean" />3 `8 `; J; {& R2 n
</typeAliases># o, H" J+ x% p) i2 p1 p, D
<mappers>+ w* D% M1 Q: e- f1 l8 B, X
<mapper resource="com/wg/bean/UserMapper.xml" />: K- ^) t3 l# z7 Q( O2 Z- L
</mappers>
( x: Z$ U8 A0 l/ v0 e1 N( K5 R( ~ </configuration> 复制代码 3 H9 a; K) g7 h; |6 b& r
user-context.xml:<?xml version="1.0" encoding="UTF-8"?>
' S5 i/ \ K6 M9 ` <beans xmlns="http://www.springframework.org/schema/beans"
( i; V" E, }% S9 a: H' A, s$ ~ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
( r1 f- W( U2 W3 c/ F# y- _ xmlns:context="http://www.springframework.org/schema/context"$ o" y2 B: D% ~
xsi:schemaLocation="http://www.springframework.org/schema/beans
4 F2 x2 C0 F0 L http://www.springframework.org/schema/beans/spring-beans-3.2.xsd. s( v1 `$ @- P/ N+ S) ^
http://www.springframework.org/schema/context
/ A! ~- V+ R6 R$ U* b, }+ o http://www.springframework.org/schema/context/spring-context-3.2.xsd" >
3 O* ?$ K4 d+ z: x z4 E4 V / c# f$ U9 a8 J# B
$ Z3 ~6 F+ c# q8 J2 m3 ~
<!-- 用户Dao -->
6 }- c1 X5 S& b <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> ; a, b9 w" J9 E$ K8 A4 i
<property name="mapperInterface" value="com.wg.dao.UserDao" />
1 f0 z9 }$ @6 f6 [6 i$ w <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 1 M( q3 s; H; v" `+ S
</bean>
0 ~" l/ Y+ [5 f2 {$ l; i9 I/ u
; d5 M H7 L% V" v) Z M! l# C $ j. c8 Y E- L, H
</beans> 复制代码 * j1 p- d+ m3 k- s
B: f% h: a# ]( q
, S. v! D! r% C ~# A1 Q 链接:springMvc整合mybatis项目源码 # V" }* r9 l4 ~% v7 K
密码: 7 k1 ?9 P7 ?4 e0 t" m
; v) F ]# w5 D6 ~' O& s5 d0 V
$ j$ u; ~- K# I4 I ) J" Z6 b7 T: R, G- L- N; t2 @
科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关2、本站所有主题由该帖子作者发表,该帖子作者与科帮网 享有帖子相关版权3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网 的同意4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意7、科帮网 管理员和版主有权不事先通知发贴者而删除本文
JAVA爱好者①群:
JAVA爱好者②群:
JAVA爱好者③ :