该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
: A7 W9 I% D# x' m2 R
: }7 v3 D5 `: w5 M2 U( ]1 s( d, w, e! n1 a) Q5 V# B
提供完整源码下载,欢迎评论,欢迎拍砖。
+ `) v2 ~. z1 c, l/ j! J2 |+ J+ E6 M7 A7 S& A) m) g
1、easyui
/ d' B% j7 M! w. c( D0 `, j$ I$ q% r% f7 `
2 G3 q$ B! |" `! ^( [最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。
2 t* W ?2 {) X$ i1 |2 }. h/ a
4 D) ]) ~4 `9 K. f) ugrid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。
) `/ m. k) Y& _5 W. E: X& Y
2 f; ]" T+ ?/ r! b' d+ A: F6 C本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。. E( Z! T# b2 c1 ]) s% s
`6 [6 Z }$ v
2、Spring AOP
4 A+ R G% N j: Q4 `4 u4 c; n, K' @
% l* D: Y% g; N/ G! c% j切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。6 P V9 |5 b; e9 y$ e+ W5 K9 g
9 G {+ P* Q3 s/ [& L3 i
3、springMVC1 d/ G6 a/ s. Q/ ?: w
: d: S7 o. r& i# r) E6 Y6 b$ I使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。
+ h/ M" T8 q: ]0 J: c* S4 [' [2 R! J3 `) }5 u
4、spring security0 O! \) v; O J( `, q& f$ J
& U/ K/ j8 I& T) @# y: O4 t
安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,/ c8 E( n5 z* P3 f* {6 F
: {# N. V8 K. f& t要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。
& k, }* n" X' D$ i' Y' j. t4 d8 j$ x7 G. o) |; t0 T+ [- @
1 c/ @) C/ y$ _; g- p* W
2 B: Z1 d0 f0 {* z9 \& v! N5、spring整合Hibernate
2 @) b! E) c$ O/ V/ `& {0 E0 V, e& s: M5 Y# s _: K9 \7 m
Hibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。
$ I" U, V' Q8 r6 H" D# ?, X4 ^$ C" F7 o' ^; a
HibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。
: [) p* y" X( w; Z. F2 Y% G9 J- d6 k% e% ]; [" m& g5 m) H8 S
我使用的是eclipse 插件:Hibernate tools, @7 g( H- _9 p
6 l! }7 ?' D1 k7 V# y7 t$ i% X* N
6、原生JDBC2 T) |/ w0 D. |/ M- I$ K
! u, h9 }9 K2 R0 g+ O" ^8 [DriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。
" g" p! y2 M- \9 c) u+ y3 w: ]# B
8 ^* q& C. H# [6 ~- l3 u2 ~7、Gson
/ ^# k- N: V# }0 x7 ~; ~% n, W. g& o! h9 B X- c* v- a/ F- ?
JsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。# x! a7 x1 h/ p. ^, o5 \
9 @1 F4 r+ e# Y
5 W& G8 k M- J4 c) X3 w+ e' x
Demo效果图7 x) K' s% A- ^4 m
; S& n/ n+ F+ i( V4 E% V4 \
, M+ I4 ^/ H2 E5 L! v1 j5 I数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。- k6 |$ _- k$ K% D2 w
O; u- ~) _# V& i% \3 ` j. HSpringMVC+springAOP+spring security+Hibernate整合实例代码0 N& r' J1 a- M( ]5 _! D( C
- ^# I) W& _; f
" Y1 T& m6 m% V/ E" d0 [ |
|