该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
2 c5 F8 F( ?. l& F
M7 Y4 O0 Q$ {, U
- l$ O, V- W9 o! F$ p1 F提供完整源码下载,欢迎评论,欢迎拍砖。
) @- ]1 f' i4 x, A# a7 O7 s% Z( E/ v2 _: `! ] E
1、easyui
4 F, q" i$ g4 Y. j7 a3 \- C! [; Z
8 t& N( c3 W6 D. D2 _" K/ |5 a1 H最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。; \+ {) I3 }! m( {
3 p/ E+ t4 G! m/ M8 ^grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。+ E0 j. I, }; f7 `- H- K
, `3 q! z# E" L9 ^) e/ E( d# ~; A6 P
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。1 W' H4 k& Q& I2 s7 f1 G
8 h- G& Y3 w7 e& f
2、Spring AOP( _# T' d0 Y: ]
# |7 }! u: Y& w+ U* i- X
切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。1 _. R& g, p9 R- C; g N+ s U8 n
( q6 ]; j# c& u m3 D: s+ Q! R7 [3、springMVC# i6 U! u _& u! q8 s. Z/ {5 o
: ^- P+ g, [$ ^. Q
使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。8 R, s+ Z* w; y" Q3 B* g B
% w; A5 K# a4 t' B& O9 {7 V; B1 @/ A
4、spring security
# `6 h: M4 Z# l# c3 x+ ^% o
/ U2 N7 }# J) ]. k安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,
7 C' F" ?: K Q7 ^2 f. q) x1 \
$ n- i3 s( _! c要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。7 w2 n- F; Z3 C% U$ O# j/ Y
, q# a0 U3 B" W& @
0 V7 m0 M% \7 s0 o) ?: `' ]% j4 f3 ^3 A- g
5、spring整合Hibernate" _3 R: @! a9 ~/ r& U
1 N% {0 U, g1 e LHibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。
/ P l2 ?0 E' T% S- p X# O1 z8 k; [
HibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。& ?$ ^. b/ }! T' ~; ]
Y3 R0 \* v+ M7 ~1 z; J
我使用的是eclipse 插件:Hibernate tools
2 P. S1 e/ b8 e$ R' u3 K' _, n( ~' y# L/ O4 {: i* f. n3 e
6、原生JDBC4 H* W( V- J/ U
" o. g3 g4 M! n( CDriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。& e! o" l+ t6 N: _( Q
0 H( b$ c8 k7 e/ y& t. `& m
7、Gson, v" b& c2 B1 }7 l
3 z" s; y& I; D" g% x6 n/ WJsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。
; |- S% }7 W4 L8 o# ?. E2 h7 y
7 Q$ |+ k; r d% C7 S
$ z, A# p: g* w3 L# ~Demo效果图, w9 `' G0 J2 t
- Q7 U5 y3 E: Q& H0 q
* f! S+ ?! r( `' Y数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。8 n, z1 B$ T% _, r
3 n. j5 X' a& _9 r9 K% ^
SpringMVC+springAOP+spring security+Hibernate整合实例代码
5 `% @1 W8 t9 h* a# A7 g
: s7 L6 \! G" ~7 s4 f5 E2 \3 J: k( d7 Z4 `
|
|