该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
/ y& u# N2 u! ]7 \' z1 n3 \) V' b: x$ b7 O5 p+ f' P
; x5 v; c: W9 `$ S
提供完整源码下载,欢迎评论,欢迎拍砖。/ m( o4 `$ h3 S6 c
. Q, Z, Y! n8 Q k: R' T' G1、easyui7 h5 z" {- L( a. }9 r p9 q- d
1 {" _# d" K/ z! E8 ~
最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。& A. B" z: U& N9 ~: A2 A
: Y/ ?* z( H, @! @9 X) D+ u4 ogrid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。, \2 b/ M' u0 S4 @7 W
( S, o' V z- S+ D0 u F
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。
; Y& k1 e- s# c4 W" Y# \, _9 g) R: Z! n& |8 e# I
2、Spring AOP" \& P+ ]4 W7 Y7 S- o, K; J1 j
" w9 Q* _; c3 z$ v. k3 M, p
切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。
4 h* P+ C( \8 U* o) z$ B* P$ i( D* c: g; f7 }" |5 L" J
3、springMVC
0 j2 E; c( X( q( e2 \1 K! q3 ?
9 b2 ~& Y2 i/ y/ f0 ?2 R使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。1 g- g) W8 r& l
7 J; b$ A, z8 Z$ R5 V: I4、spring security
0 y6 R8 K3 c( d8 ^* E' w
) `2 M7 [/ E0 l安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,5 U9 A; j' t* w7 ~
0 x9 e1 ]7 ^# V! [6 C
要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。( x4 k# V: D6 v3 X. j/ g( ]
/ M; [. X! O, H: {0 d& L
& F4 j, `; e) v, t7 k5 M
& m1 `# l3 ~9 S* f9 w
5、spring整合Hibernate
' c l* x- [9 N% N3 l4 \& ]- K8 S( o
Hibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。
( R, L. X t% ?/ V) R" ~
. V: z; F0 y9 Q* PHibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。
1 l8 P' L; u! s5 V$ b
6 [) L. r G; ^0 a% u我使用的是eclipse 插件:Hibernate tools
* P# w' h" ]$ u1 g6 V7 {# _! K. V7 \8 X) I
6、原生JDBC
% b6 W- b: L6 y# J$ \ f6 {* C, K. s1 k' t$ G
DriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。% z5 u; A, `& X
. F: @7 o. L& h
7、Gson
2 ^" @0 t, Z/ J7 W; u; s; J2 U; Q
JsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。; L1 ~, \! H7 H: S3 `6 R3 S( \
$ X& e; B0 p' B( o7 e( W8 k0 b6 v8 ]3 w6 u
Demo效果图
1 I9 n6 K9 I; P4 P" K
- }: H2 k/ h6 X$ t, t( d, s* @3 @
7 B# r4 s K* b) v0 T5 r ^2 A" b数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。% `6 ]9 h/ k1 ]+ u/ j
3 M% K5 E F( T- i) S3 h% k. }; M
SpringMVC+springAOP+spring security+Hibernate整合实例代码* G, u& F- E! E( r' p6 K# p
2 Q$ @: y. {. t3 s$ b8 C, x6 N$ [ e+ p" k
|
|