|
该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。1 {6 y6 U& O1 Z, s' k# y
( G; x) z" v- H0 O( S" ?6 h5 S
/ ~& n) |8 e: `! R3 O4 o' w/ |
提供完整源码下载,欢迎评论,欢迎拍砖。$ m9 l) s- k3 B2 s3 q
( \1 H) V) ^! \3 b3 B2 X& m1、easyui* _$ B; t( g4 e
' H* l6 z- }$ \, S5 J6 |
最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。# i( a" v: k# D( N4 l, f9 g, v
8 [# I4 _. K2 T
grid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。
1 T+ j! V; S) V3 B& {6 D+ p- O7 j/ ?" k$ u
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。/ v% g8 o: t) p# T3 L. g t
% Z$ ?+ c+ b, D" F' p
2、Spring AOP$ r4 ~2 I3 y/ t, ?9 X& H
1 p+ b {- w0 A" g切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。
# U+ v( U+ S% |, P+ j2 y
d! Z# n: e1 h! Y% C# [3、springMVC# N: W; a, t7 \2 w3 w3 O1 G, u
8 Y6 `; h& K) p7 [' O7 _
使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。2 E/ r# x+ P3 ~
# q5 ?0 [! @% b8 H# }' r8 Y4、spring security
( ^5 D8 B8 C4 O
8 F( V2 I& f! w5 S安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,3 U1 \, V* u0 Y9 F2 \3 t$ n# o
: X7 e0 J) |- v要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。
" D5 g( s. V2 f+ l8 m+ Q) p. q4 ?4 N) z% I1 P
s+ R$ E& Q( y' L4 O( T/ E# a) ^8 L9 @# t. L/ R! g+ [* W
5、spring整合Hibernate
; s& |; t& F( S/ b; y+ A
" J, i7 B% y6 H" s1 X* xHibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。; U7 Q$ s0 F% n2 p- x% Y% m
2 f9 E) w% F4 P$ M7 h0 I
HibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。
+ m2 x2 e9 H+ Q E' |8 B
* q. }2 X+ G$ Z- _我使用的是eclipse 插件:Hibernate tools
6 P* a C/ |* ]3 O C* g
7 Z# P1 w# @& Y( I# |/ n3 K: e6、原生JDBC# G) `; i9 c: p( U% ]
/ L$ P5 C4 b" f& P
DriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。- C: a8 w; w% B" N1 e4 _& c2 s% k% @, `
) ^; {5 v* ?3 k/ R7、Gson
* x0 x+ ?/ y, T
0 ]& {- w: R$ o3 p* D0 G* s1 nJsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。* b* t4 m6 g, ~0 R$ R5 w+ B
6 t! P2 t1 t& J
( D/ b: I! m5 j/ Q @; d3 `) d7 `Demo效果图
0 M" a. e: J. i/ h4 n
0 G) a# e# p R
" }; V: z- i4 J% o数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。
8 p$ O% o) Q- R/ Y& x- s6 Y2 T4 D5 i% G! r' G6 }: X$ o
SpringMVC+springAOP+spring security+Hibernate整合实例代码
( T/ j: f* Q+ h8 @. |) H# v# G$ }
$ w2 r( D" `6 X. l8 \+ s0 F9 o" x# H1 l' ^/ Y& B
|
|