该用户从未签到
|
最近花了一些时间整合了一个springMVC+springAOP+spring security+hibernate的一套框架,之前只专注于.NET的软件架构设计,并没有接触过java EE,好在有经验的朋友帮助下,少走了很多弯路。之前的.NET软件架构学习的非常艰辛,.NET软件架构方面资料真的不多,很多时候我要看Java方面的书然后应用到.NET的框架当中,在整合Java的框架时明显感觉阻力少了很多。
4 C) P9 w& h6 ]2 Y# g$ P
" U, r+ D4 D6 d H5 i& _
2 Z( n- w+ ]6 W8 K提供完整源码下载,欢迎评论,欢迎拍砖。
9 H0 N5 y* p$ b0 r7 I& i5 u, s- @! i- v% a# _5 B9 v7 g- Q
1、easyui3 N: n# e4 L# a- D+ {
# ^) F0 x) Q) N0 M- S3 T最后决定只用easyui来作布局,因为easyui的异步树在IE中还存在bug,快速反复点展开有一定几率变量未定义,或者长度超出,源码变量加密,所以打算改用以前自己改过源码的树,UI效果神似的很多。
5 K1 C$ Y8 W3 P1 N4 v: G0 A
# \, D# |6 Q" b/ D) ygrid列数一多IE10以下都顶不住,10条数据,30列,数据库查询到返回json给前端浏览器也许只要0.3秒,到了浏览器却要加载6秒之久,然后火狐下测试不超过2秒。2 t2 L3 K Z& N% ?# l
* a$ F* Q+ w* w f# V* R8 z
本Demo亮点:对选项卡的控制,增删改按钮的插件封装,各种弹出框的简化调用。
Y( \8 V6 R4 F# A& \# M
' x, T0 i1 ~5 @- E- k2、Spring AOP7 c( n6 \7 t0 A- c
1 \: e0 E2 U: @4 u& Y) ]4 \
切面编程的Demo,可以在每个业务层的方法执行前后做一些事情,比如日志,或者一些验证。
3 B: f2 L) x/ @8 J/ R6 S( q" p+ M. ?; M/ T4 i0 l% c
3、springMVC$ R8 h4 ?* N( H; V/ K' \
5 y+ h1 a9 |: ^/ f# ]" O. F1 X使用简单的MVC,Demo中包含了一些菜单树的使用,如果不喜欢递归,请自行修改。; ]6 D/ S$ r/ B |. \$ g! U
2 c/ u$ X# v+ o# u( S
4、spring security% }! Z, m* Z, J
7 d% s6 w& @: Y, R8 P# C4 c
安全验证框架,为了可以先看到Demo,默认被我关了,请自行修改spring-security.xml配置文件,
3 S/ p: P4 p1 p1 p& o- Q, Z1 V0 l% N0 O9 d8 H- f/ _! W6 A
要搭建权限管理的同学请自行完善,自己的权限自己设计,世界上没有绝对通用的系统。
. g9 t. E* p m- K' F! n2 B: c1 _
' G. N9 R( y b6 n. a( n6 r9 w! L8 e
' S& s7 h& |: T, Q4 Q" {7 x5、spring整合Hibernate$ O9 B: @4 u, B/ _/ P
4 x3 G% m$ W( T% J h8 EHibernate的事务管理托管给spring,在业务层做事务管理控制,可重用数据访问层。7 W: V! w& U. E: U3 d( d
/ x9 ^. Z) k/ s6 i, j6 pHibernateUtilities工具类提供了原生Hibernate的,特殊情况如果需要摆脱spring的事务管理可以用这个,以grid的demo为例,这个是底层servlet的调用,这个工具类依然提供了每个请求使用一个Session的机制。
x( V0 n7 _8 p0 g N$ u( n9 U" h8 v6 E3 z( c# S% L# j
我使用的是eclipse 插件:Hibernate tools
. M( m: e1 c& p B# r- ~ R, U8 n# V A' g9 M
6、原生JDBC
' h, ^$ k6 E" H( V" v/ v9 e
- o( [8 P, O$ I; ?7 L4 K& C6 bDriverUtilities工具类提供了JDBC操作数据库的,但是没有提供Demo,因为非到万不得已,我不希望使用最原始的JDBC来操作数据库。
* R& x8 Q# E1 A7 ]% L) s
: F' i9 |; T$ c _/ z' D6 b R2 Y7、Gson
' N' |8 l! a; d8 K& V
7 P- ~& k$ W+ ?) f( |% W vJsonUtilities工具类提供将javaBean序列化成Json字符串,用排除指定成员的方法来避免实体类之间的循环依赖。
6 T' e9 y2 ` ^7 v+ q* d" Y" [" ?! n+ Q+ T* e1 Y& v
8 I1 m5 O# F0 R' E; XDemo效果图5 M0 U2 Z$ U6 ]* W; y, z/ X r
/ Q3 N8 F3 N+ p8 m/ f* w* J9 |
1 p/ @; ]4 \5 @8 J, ?( k7 [* H
数据的问题:使用Oracle10g数据库,没有附带数据库,可以使用Hibernate工具用映射注解生成数据库表结构及主外键关系。注意默认scheme。# [9 P" w+ f% e* m
' {' ^- E0 L1 A6 D8 x/ D0 F
SpringMVC+springAOP+spring security+Hibernate整合实例代码) k9 K; q& }7 A1 a8 D
! [1 F* B' F% l% } {
, C* _: K1 C. ]7 L
|
|