该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
( I K! {" W" \) ?/ i: O5 p6 M3 S2 d8 C8 _) q4 |
, K1 ^# C/ T1 S6 \/ ^8 X7 ]2 u7 N+ V提供完整源码下载,欢迎评论,欢迎拍砖。
2 x' Q: S2 {' U9 E: A5 O0 g, d' N, z0 w6 c
1、easyui* e( W4 B3 f. s0 B- O$ o
: C6 |) ^" @" v+ S! Q
最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。" |/ `% b) f$ f- b8 x1 o8 q. r* P1 Y
# U: d. U! L+ N4 K/ lgrid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。
; t$ i7 g' ~8 F: a2 l, v# ]" Q
5 q: n5 R% D8 o: J' R; g本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。0 D: ~5 z5 D0 m4 B0 b0 e" m
0 R; W6 \$ V$ y: f2 J Q/ |1 Z9 A2、Spring AOP
) E# |# }2 y/ m1 \) V& ~
- G6 s( @1 ]) o* ^, D8 o3 o切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。& B) l1 ^+ n4 F
: K" z4 J* m2 k6 p+ k% d3、springMVC$ A" f4 W9 |+ c+ Z
/ Q; s: \6 X; y+ X7 Z% A使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。
# I# n1 @" T4 A( b8 K! P% l5 {- z6 ?0 Y( p& g5 K' S
4、spring security
: P+ j) T6 Z% y' f9 h. X3 J8 u: K4 u
安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,* V. e* y4 U1 [
+ c0 i! D1 m: r! M: X q
要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。
% V. Q: X# ?/ q+ H
8 W1 f; Y5 J7 A9 V4 S7 C l7 @' p3 s9 T6 g( u
1 |. @, m, S! R; O5、spring整合Hibernate
8 u' \: `) u6 i, y, N# \+ G- a I) `% l$ K
Hibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。& i+ k4 S5 t: g* e* F
1 C# ^3 {# Y$ M C8 ^
HibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。; Y K; W* B' F6 F
4 W1 A7 ?8 k% _
我使用的是eclipse 插件:Hibernate tools7 p) }" O" M a( D1 ]7 @7 i
1 U$ m& p: F" K- a8 X6、原生JDBC% ?, }4 L- R0 K4 }, ?& [
5 }, ^/ @% j4 j* y' q, vDriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。0 s( `* E! d0 |% r3 Y
" ?) s7 n+ x d# c% q1 F7、Gson
9 }- j: C1 e0 }# l' z& t7 s3 b s" D0 \8 G9 \" e( E
JsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。
! P; `% M3 \8 _; `7 r0 l/ W* E& C8 W# w! Q! _
. \; G2 h$ s* I3 v" z
Demo效果图
9 e: R4 v, j, c' A9 X
: |7 w' U# X% Q. O% w5 F1 C( p5 ^7 b7 O9 I
数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。# r; H) g8 E, _
4 k# }. o1 Y0 ]/ CSpringMVC+springAOP+spring security+Hibernate整合实例代码& ?3 d0 r7 ~% f# B
8 ]' J, H O# F
5 B" S3 d& F+ X2 Y |
|