该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
7 A* p, y# j2 k- |, H7 S
2 Q+ P c9 |" z" b. b/ s& N! r8 y! [2 Q J5 D: _1 U6 h
提供完整源码下载,欢迎评论,欢迎拍砖。
9 o2 Y6 l& {% b) `; j8 G0 _9 v! H7 w' H' m1 F
1、easyui
4 |3 f: Y2 z% t- U$ y+ j N: b) ^. L( ~8 ?4 C% ^
最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。6 E) s# {7 l* B* o! n( @
6 e9 c9 P5 t# i9 [
grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。" Q/ K1 i% t1 j9 U0 e4 \" [& `
. [# A+ o# Z2 B/ g/ e7 e% i本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。
* N6 i( O. W' @; _5 ]5 y4 x4 l5 I
9 M( w* W5 w' P: W8 h2、Spring AOP$ _2 Y" ]9 Q; u8 I$ H9 o8 B
/ ~/ e: H1 W+ {/ c
切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。" ~ w5 a! ?" E, c
; P0 l- l* D. i f' \" U3、springMVC. F. M; k) Q3 n
* \7 a( I) W- u) x2 O6 |
使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。
8 t# a& @) R0 X8 C! r0 h: Q* v( N; N$ y* t
4、spring security
# S4 w& G' A/ m+ R/ R
- }3 v% P6 r1 y3 o+ q+ S安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,1 s' a! P, Z1 q) _) V
+ g# a, p, H! s要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。, W! ]3 U8 }0 ?1 e- }- x
3 o+ B9 ^8 X Q8 Z' N
! C, y0 ?/ e5 x2 y$ k$ ^* z
R# U, G4 e2 E8 r9 E; U7 ^5、spring整合Hibernate+ F5 H$ o& Z4 P$ c2 r$ V$ Y
0 d6 W: a4 c9 k. f" q9 z! ~. _3 x
Hibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。' R9 ~+ ?3 u3 F. _$ S& f
$ ^/ X) y g2 C6 V3 HHibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。
j0 w( b3 M- O# o; q8 G
7 ?6 s( w$ v5 j+ a+ g5 r我使用的是eclipse 插件:Hibernate tools
4 K4 ^6 J6 B7 K8 a; F: | M& E; p, @0 [# e
6、原生JDBC
0 t+ w) ^9 a0 O& u
9 l* S5 M2 k; a5 T; w! `9 P; lDriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。
& E# m5 d) f1 b: x' D9 X3 E' j5 X7 M9 F, o
7、Gson( n. n+ H6 f/ M: j A* B
4 \4 ~1 a6 c3 ]# V
JsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。8 h( \7 J' L# U& f' G& N& {
# c+ I; W( O, C' b) a6 ]
" Q3 M% {* c( E5 `( }+ ]+ G6 D, [
Demo效果图
! L, S+ D5 U3 I3 S, p
5 ?& Q) j* @ f& g7 x2 F
! F! M8 c! e7 _1 z1 l数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。
r( J2 R6 q7 D7 t3 l
1 \0 H" i! h& s7 s* j+ ]6 SSpringMVC+springAOP+spring security+Hibernate整合实例代码 a. j5 I3 M' U" t
* Z& P* W$ Z4 y# C8 W% X4 A0 t+ |! v8 Q1 c0 |( I$ B( h
|
|