该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
: L% c( J0 D! Y* [* E) x( J
( c# k D8 K: a% K7 T* }* K [7 c' G; ~! z
提供完整源码下载,欢迎评论,欢迎拍砖。
' G+ P+ X+ s7 l. O! O3 Q
% \4 l9 M' x+ [/ c1、easyui2 U1 H) Y7 ?4 B, N! v @/ i& D: A
7 B% l9 j( ~: \9 C+ ] I最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。
3 z7 _7 X3 R M* C1 B8 {* M5 }7 _8 k
grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。7 F$ Y9 _4 t" N
7 Y0 y- t) v6 i; ~* I& X
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。# {4 l2 T5 k9 i
9 s$ x! N# I. [, C. r6 f1 M+ E
2、Spring AOP
8 K5 i( b- C* A6 T4 @% C8 O) q0 q( T* O" Q% p( f% M
切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。: t+ Z, T0 z& y) P: X
1 [% D x G" y3、springMVC- Q. e! @3 G% o3 k
2 O+ g; m* j/ R' Z1 Y8 Y! H d" P使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。* O& Z8 w7 _0 T. |
! { v0 A1 M: l- Y" r
4、spring security
4 d8 e1 v* e! e4 P% p2 C
! i Y; v W% ~) d1 }安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,& j6 r3 T- c7 { k
) T4 B. o% Q y6 \要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。
- X# n* S% y8 m" s' w7 ^/ G
4 W$ l( ^8 H* \4 Z' M9 f6 t% q! l- |+ ^5 ?4 {) W
9 L5 r( ~) D# V0 U( `5、spring整合Hibernate+ m: m/ P9 \1 k' Q+ |# M* `# a
5 L# d9 A% ~' QHibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。
1 o; c; D- q! x# J7 k0 w, m: R( H/ W8 Z5 s, E- [
HibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。2 ^) y- V5 G- i
' \: _7 S% T) U2 e) ]% A. c( g1 m3 h" J我使用的是eclipse 插件:Hibernate tools
: J) ?! P( c. E6 ?8 P5 V
$ B' B( u' ~, x- } D- z6、原生JDBC2 t- a% A2 c, l z1 } E% C8 A
: y) ~) Y7 ^( V8 k3 d
DriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。2 W2 X7 M* d a0 P$ v
8 K5 i4 P5 |; Q+ S, G. m3 X
7、Gson
# e a. U$ F" D! g5 t* \# f* o0 d7 {/ M/ V8 h* ?
JsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。4 K0 O$ ]" M0 q0 c4 e
, _6 ^; y9 A+ O' }1 a
- {# J" F$ U U5 a& NDemo效果图
. o& i8 N/ D. N+ ^' z) m
3 p4 g' ?7 y) g T+ @5 O7 w0 Q( O2 M, @( n0 M3 I0 L9 J6 @
数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。3 ^! {' f! v9 Y- m- I! | p
' v; e* p8 x+ d- _0 gSpringMVC+springAOP+spring security+Hibernate整合实例代码
" Z/ ]0 ], p: |7 ]# u
; N0 E! A1 Z7 ]* S0 A( w6 t4 w l$ J+ o! J2 \
|
|