该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。9 ~" R+ f! m, n2 K5 _% }0 E m
5 H, H% k P2 I1 U! j8 ~" f
" C! D6 k4 m* t9 L ^0 a
提供完整源码下载,欢迎评论,欢迎拍砖。; Q5 c& A1 j2 K# r- ~
; t6 V+ m' @8 p: o9 O1、easyui* Q t5 q5 c$ P4 @
& B9 P) n# x" p8 m8 Y, G1 D
最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。( z9 a# D9 C6 Y7 {" |" {5 B: C
# A, M/ G8 J" \
grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。
* ~% c3 Q3 m) \6 q S0 {$ M2 u) s9 D6 c1 b0 b" ~
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。
. e' N$ r* [/ p R: E. Y4 s+ o- t( L
2、Spring AOP
" _; c5 {2 I+ d& G
: y1 J; L' S! Z" J2 b1 z切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。
( Q" M# X5 ?- p0 f$ s) _6 d! r4 z' Q* Y1 V+ i' l
3、springMVC( H2 _% I' c( d9 w4 h* O; Z
% J% N7 g( Q) @( e8 A5 C
使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。) D! N0 \5 D" ^$ @ i$ L" P" l
" K4 Z. {6 ~) i, c
4、spring security
8 p1 A! x! h' J7 R8 ?4 s9 l h
! x+ l! F3 A/ N安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,
4 ]' t! j% j0 @* t7 E" y. i( o0 X3 X& y- g) R8 ~
要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。
/ j$ k" o9 w$ X# r ]6 h2 h% a H8 r4 |1 D3 Z: ?3 o0 [
$ |8 E" w8 h- L3 v% j4 z" J# }& o
b% a3 `* L! O4 j+ f: q5、spring整合Hibernate
& V9 [& x; ]+ ^& [: R
8 }" g- r1 K$ L% yHibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。
" g4 B* t4 f: _5 q
7 J$ o' Q& c( \7 ^) j, D8 l1 k4 H- ?$ oHibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。+ s! l' O6 h0 L0 m# a4 k
5 F$ O0 B$ h* }5 W; G8 v# O# i我使用的是eclipse 插件:Hibernate tools9 r5 y# e1 b2 Y& ~' B: f
/ h9 C! k- T! h6 }8 y8 c2 d E
6、原生JDBC0 K/ |8 B E2 }% ]. ~( i
7 l% [6 y( ]- h: ]' k
DriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。9 J/ j, ^8 d% p; `
: ]3 H+ _9 f0 @* g X" Z" S7、Gson' L$ G# I+ R/ r5 {- N
6 I! f- k( G& [( J% V X. M5 \5 PJsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。
3 S p4 |" \% I" Z0 n
5 s8 z" ~& w/ n: s" c4 z7 _$ m2 j
7 |% X$ H0 z4 ^+ t. GDemo效果图
2 ?2 k0 w( E A# B( A' m
" J: U& ?. e8 I/ [- ~* j
7 P. E" ]4 u, @; R数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。# n, i8 g* Q7 t Z
, n I% D! i, R' P+ e/ B4 JSpringMVC+springAOP+spring security+Hibernate整合实例代码! R; |; Q1 K, ~) E
9 r# K# i; R8 [( p/ N
# }" q& P9 {/ ^1 O) I! L/ |
|
|