|
该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。3 y( g8 ^* w1 R: h8 o
& W# p! R& p3 q6 D5 Q& x% T- ?! ~
+ @9 y# X- ` B8 J" s1 V4 ]提供完整源码下载,欢迎评论,欢迎拍砖。+ V F0 a% H( F1 `
' b r8 B9 ]7 K- }: P1、easyui
7 G$ i) J; P" o, g, g9 G8 _! i, S
1 p p- R* ]1 x# H% L最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。! g' ?9 |5 a/ z: h
: Q, N3 X. N8 N, A
grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。
2 u6 U6 v a* ]8 [2 p% M1 d& @+ W* C: O5 @5 y$ V
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。! W7 i8 X; a s8 w" B( [+ t8 M+ M
?. U6 z- Y' T5 K g
2、Spring AOP1 s% f8 u1 ^! G8 o; c6 Y
2 w& u, E0 m6 T- i# K切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。- {; `& l1 f) D6 u2 b& ^( t
, `& B7 P9 S9 V' x& U" m3、springMVC* S7 G& q9 i* {# T% S& H& O: {! a
# u0 F9 |) P; Q使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。
8 k" i2 d1 H9 r) ~ ^ e" _$ Q' p$ N* s" }/ C4 _' H
4、spring security0 p! Q) B# l$ R% t% e: u" j6 V, l
8 X* o7 L9 d3 ?& O安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,5 e x" T" Z7 M' f5 |
6 H$ m9 _, T" l$ B; @. a e要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。! Z; J }, R' O# j6 O( m7 h
8 V1 T, r$ w$ R! [6 t
$ W2 T2 ~" Y0 ?% J/ D/ ]# \9 _1 w# b- S4 q( B. u
5、spring整合Hibernate8 @' c# u3 Y; B' ?
* @( T ]* V: B" l! ?' Y/ s1 b
Hibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。
3 E( f: ^( \& t$ t5 b) q/ W) Q3 M6 S! T2 D* `5 e: R
HibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。7 m, w. S4 F. |" ]4 h# d
- a5 p( Z" G v7 _
我使用的是eclipse 插件:Hibernate tools1 T0 r; a2 V$ x7 s/ m! Y8 @
- D3 i7 n+ x# b1 ?1 _: f0 W1 s6、原生JDBC
* r y; k9 ]4 b8 Q7 @8 I8 Y
D& y2 F- t% D0 V, o3 G3 dDriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。
8 i0 A% N: r" p! z; ]4 c' N. u9 m' j0 C7 f/ K7 D
7、Gson( H( a8 z9 s9 }1 C; }. L
# {3 G3 K0 W+ [/ j8 v5 |. S: Y* UJsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。
, p2 I$ w+ {+ ^7 K& a# {% }8 g6 N
; y( S% |4 Q/ K. Z) I: s+ P3 `# M1 SDemo效果图# G1 H A3 v3 Y7 a6 G
# U1 z+ D) M% G& Y$ P: _* H* D, G
- J; f& p9 ~; h: Z' `+ s2 _数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。
, k0 \+ C4 p9 `4 t6 z* O [6 C! c, h
SpringMVC+springAOP+spring security+Hibernate整合实例代码
7 j+ r6 d% @' @" u0 z, J/ @9 |- \* P7 \6 [; |% J8 o
+ J5 } Y$ V7 L% C. J2 t. Q( B# Q |
|