最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。2 q$ [* a/ | P+ T3 H
. x y0 D9 o9 T' C! D6 b) a% }8 [3 F7 u. I [( W
提供完整源码下载,欢迎评论,欢迎拍砖。/ |" s. r" u9 k
+ l5 @9 F& m% B/ P( u) `
1、easyui( |/ ^: W4 K1 ~, u
* r4 b! X' L9 w9 C最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。 7 Q( F5 b& C# H9 w2 m2 t3 o( u7 A: d7 y7 w& s' Z5 e* U
grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。 6 y* O c% n8 c5 s3 J0 w7 c7 C8 X' |8 \' o( \6 U8 u& R
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。 ; X9 m d- Y- y' ?' z % G: Q# m/ K; D3 x- Q2、Spring AOP / e. k3 ~; @1 y4 w: c/ T: H ^8 D4 _
切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。 - f f, L9 Z/ B. w4 W ; H5 r1 E; K$ D# O* k3、springMVC 8 i% L2 k9 z5 r! R9 l3 w7 w8 ] k# u/ X4 H
使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。 }$ }1 Z" }+ T# D' b: r( T# Q' ^% i$ G
4、spring security - P5 f0 A' h+ _! A- [% U3 _* |' r. r1 G/ n7 m* y2 {6 h
安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件, 3 p9 l& b$ G! ?$ i/ p2 n" |( \# n4 L- N7 [" U
要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。4 a3 A' L1 B5 G9 l5 g
0 [+ x; v9 {7 i6 z+ F7 B K # K; E4 s6 Z! X( j0 P3 { : {+ ]5 q4 ], l' P/ ]6 |: ?5、spring整合Hibernate # |4 b) X3 A, G/ A5 Z. d! e. f' y( R m8 g
Hibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。" `! {5 y. [8 ], R9 F$ v0 {6 h& I
/ I3 b- G2 F {3 EHibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。 * m2 c5 `* E. u- z; _& U9 S3 B: E. S* [
我使用的是eclipse 插件:Hibernate tools2 v- Y) T+ A0 H* f% q e4 Z
( p- H7 ]# Q3 s* B- C% k0 }6 U* K6、原生JDBC ) h' E1 s- c" A. Y: C - J" m1 C/ m' X+ S* s: v8 f+ {DriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。- g& B; O: Y. h0 U" t5 P, T4 J$ M
1 O2 D" q9 K6 w4 X- \
7、Gson4 A6 [. R4 r( a
& B; _6 A5 ]' Z; W k6 B( X
JsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。 * M" k. ^5 J! C0 W F0 F. _& X* Z0 T" ]5 ]3 t3 E4 B" w0 a# i
Demo效果图) ^7 M; t1 K+ V: s9 y6 L