我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 项目源码 > Hibernate+Spring+Spring MVC+Bootstrap的管理系统源码
总共48087条微博

动态微博

查看: 12450|回复: 17

Hibernate+Spring+Spring MVC+Bootstrap的管理系统源码

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2015-03-16 20:19:00 |只看该作者 |倒序浏览

一、首先看一下项目结构:

InfrastructureProjects:是抽取出的基础项目,主要封装了一些通用的操作。

springMVC3Demo:就是管理系统所在的项目。

WeiXinAPI:是之前做微信管理平台测试时封装一些操作,如果不需要把该项目移除即可。

注:项目的前端UI框架用的是国外的一个基于Bootstrap框架的开发的Demo,如不需要替换为自己熟悉的UI框架即可。

6 }3 S7 M# m+ Z  ^. A) z: M5 h

二、实现的功能:

登录:

注册:

首页:

用户管理:

账户绑定:

角色管理:

角色授权:

权限管理:

组织机构管理:

这是权限添加界面:

0 F& A3 c' l7 b0 b5 F* [' t/ W* M* p

PS:

1.关于权限配置:权限配置是按正则表达式匹配的,可参见下表是我现在数据库里面的权限配置:

, O# P, Q3 T1 V: k5 `8 e+ w

2.在hibernate配置文件比如Role.hbm.xml中,authorities一对多我这里配的是lazy="false",是因为在用户登录时检查权限肯定要获取对应Role下的所有authorities,所以没必要开lazy加载,但是如果你要添加其它功能是,请根据需求来决定是否开lazy,比如账户—>订单这样的就需要开lazy。关于Hibernate网上有很多资料可供参考,这里推荐一下刘冬大哥写的NHibernate系列文章:http://www.cnblogs.com/GoodHelper/category/214139.html可以作为学习Hibernate的参考。

0 X& Z- l2 C; n5 X4 S# X

3.由于OpenSessionInView会有性能上的损失,所以项目没有开OpenSessionInView,而且Hibernate的事务是配置到Service的,所以请在Service层返回数据时准备好所有需要的数据,否则在Controller或View中想调用lazy加载数据会抛出事务已关闭的异常。

+ L% g! ]6 G/ }  O4 A  o+ j

4.运行项目时最好用新的chrome或firefox浏览器,Bootstrap3不支持IE8以下浏览器,而且用IE的话要想完全显示出Bootstrap3的效果则至少IE10.

, h; o7 j" `* A$ j7 R

5.由于最近事情比较多,项目的国际化还没来得及添加,可以根据系列(8)所讲的内容自行添加也算做练手(^.^)~~~


, a! r) t2 L4 A, F" m# G0 {' ?% G

6.项目引用的jar包是用的User Library添加进的,在把项目解压到本地时有可能里面的引用的路径和我机器上的不一样,如果包路径不正确请按包在自己机器上的路径进行更改。


6 B3 _1 N2 M4 v6 L4 x9 P, c8 g3 Q4 k, a9 \

总共70多MB,但是别激动,项目没那么大主要是找需要的包时,下载的zip文件解压后会有一堆包文件,很多是没用到的,我没删都放在Dependence文件夹下面了,只是在项目中对需要的包添加了引用。

2 Y) F9 w: f3 z3 V% o" V- m$ z# A

$ {, Z5 `! \) u

PPS:因为这个系统有2个项目,一个是通用的基础项目,一个是网站,当时为了管理包的方便所以用了User Library的方式添加项目中需要的包,前些时间感觉电脑越来越慢了,就把电脑中的虚拟机卸载掉了,只保留的项目的源码,然后有朋友告诉我项目导入后User Library里面内容是空的,之后我把项目导入到我win系统中的eclipse中也发现User Library没有内容(又遇到了一个坑,还是我用的方式不对?)。所以,不知道User Library引用什么包的朋友可以参考第11篇的项目源码,里面引用的包是直接添加到项目里面的,当然第11篇引用的包是少于这个项目的,不过少引用的包根据提示到Dependence文件夹下找到后添加即可,另:Infrastructure Projects中引用的User Library和SpringMVC3 Demo引用的是不同的,需要注意。


! P7 x5 @3 {, Z3 ~+ t8 B

PPPS:贴一下一个朋友调试成功项目所引用的包(我机器的开发环境没有了,懒得折腾了,原谅我的懒惰~),给需要的做一个参考:

InfrastructureProjects项目:

/InfrastructureProjects/lib/antlr-2.7.7.jar
, c" P- j4 D& U5 ?7 W2 O/InfrastructureProjects/lib/dom4j-1.6.1.jar
+ u, J9 m( @7 B' v  o6 I% [, Z/InfrastructureProjects/lib/hibernate-commons-annotations-4.0.2.Final.jar
7 W. ~! g$ S% X6 c8 A! j/InfrastructureProjects/lib/hibernate-core-4.2.8.Final.jar6 Z9 U4 k- \( u+ m9 i
/InfrastructureProjects/lib/hibernate-jpa-2.0-api-1.0.1.Final.jar6 C2 Y$ x5 i' L. _+ l* l2 K( n
/InfrastructureProjects/lib/javassist-3.18.1-GA.jar$ y( J: ]; l7 D
/InfrastructureProjects/lib/jboss-logging-3.1.0.GA.jar# T: O6 s! I* G2 s3 o4 {) B2 n
/InfrastructureProjects/lib/jboss-transaction-api_1.1_spec-1.0.1.Final.jar1 i, v, t- _, b3 l* k7 |
/InfrastructureProjects/lib/jstl.jar& c1 ]' {2 K( G2 _
/InfrastructureProjects/lib/spring-beans-3.2.5.RELEASE
8 i% f- p+ t  U9 V/ `$ t+ D/InfrastructureProjects/lib/standard.jar


+ q+ Q# K5 c; @' M4 U; R

SpringMvc3Demo项目:

antlr-2.7.7.jar$ x5 k3 ?7 @, e9 t4 h0 U- M- M
aopalliance-1.0.jar
& m5 o1 {9 \8 I  {7 q; C* L- H9 @; Xaspectjrt.jar7 C! I3 {& j3 ^* L! Z' m7 P, l8 a
aspectjweaver.jar9 i3 S" u) Z  W6 {/ f
commons-beanutils-1.8.0.jar
# t. y& z4 d7 \/ I: Kcommons-collections-3.2.1.jar
" ^$ U  C% h" S; z8 rcommons-fileupload-1.3.1.jar* l+ H2 E4 F4 t8 r* Y+ q  C, m9 ?, h
commons-io-2.4.jar
- }" `/ C5 H" ~* }3 C2 e7 A9 tcommons-lang-2.5.jar
; m; `8 s7 ?9 U  J1 Y/ d( Tcommons-logging-1.1.3.jar  Y6 C  b8 I6 P/ o, M' ~
dom4j-1.6.1.jar
2 R2 V( y7 M& I, U7 bezmorph-1.0.6.jar
1 A& d4 u1 K! G2 P/ vhibernate-commons-annotations-4.0.2.Final.jar
# p3 x" t: j6 R$ _! rhibernate-core-4.2.8.Final.jar' Z. B5 @2 Q4 F" P9 N* L' n8 q
hibernate-jpa-2.0-api-1.0.1.Final.jar$ H( }5 f9 z6 m9 C% c
hibernate-validator-4.3.1.Final.jar
/ G( A3 E7 I) T1 p* j0 \6 g* Vhibernate-validator-annotation-processor-4.3.1.Final.jar
' E% I( j/ Q0 l8 f% @  z8 }jackson-core-asl-1.9.13.jar
: }1 l2 i3 f! ~+ i5 F0 k* l6 i! Z7 O$ Xjackson-mapper-asl-1.9.13.jar
( v) ^0 U+ R4 t6 L' hjavassist-3.18.1-GA.jar& K* M5 l+ @$ }: Z( @
jboss-logging-3.1.0.CR2.jar; o, q- T* v' E% @
jboss-logging-3.1.0.GA.jar. c) Q- Z4 y, ]) A. U
jboss-transaction-api_1.1_spec-1.0.1.Final.jar- L& }7 x4 l+ t9 K6 a. k
joda-time-2.3.jar
  M! p/ d2 B$ }. n4 z8 Pjson-lib-2.4-jdk15.jar
7 N7 ^( z! M, O" B% qjstl.jar7 u9 I, C& t9 A  P% @+ e7 f7 L
mysql-connector-java-5.1.10.jar/ b: l2 R3 |9 t% P" K
proxool-0.9.1.jar' F, g% ]' ~. x( O3 w, u0 Y$ ^
proxool-cglib.jar5 g2 j  @! _5 b9 r
spring-aop-3.2.5.RELEASE.jar$ [3 ?$ \" q7 G6 ~+ t
spring-aop-3.2.5.RELEASE-javadoc.jar- s7 C4 }+ m7 \. f) C
spring-aop-3.2.5.RELEASE-sources.jar3 X( A9 a, i" c8 P- v
spring-aspects-3.2.5.RELEASE.jar
1 z7 p$ @* d4 @- l) z% f. P  @/ qspring-aspects-3.2.5.RELEASE-javadoc.jar+ V7 R- E& o; B' D5 T! F% ^
spring-aspects-3.2.5.RELEASE-sources.jar
! {3 W# b! R& J4 _  ~  ~& dspring-beans-3.2.5.RELEASE.jar
7 b! I/ I/ S8 R. Sspring-beans-3.2.5.RELEASE-javadoc.jar
4 }- L  L* m. R( ~* a) ]spring-beans-3.2.5.RELEASE-sources.jar
' Q( d( l- s8 ^: Rspring-build-src-3.2.5.RELEASE.jar! h# [, I+ E6 U9 l+ {5 V5 T
spring-context-3.2.5.RELEASE.jar0 r# x2 |$ M) _; d) I
spring-context-3.2.5.RELEASE-javadoc.jar
* c6 J& g. v5 Q( ]# Hspring-context-3.2.5.RELEASE-sources.jar6 f( K' f) p- {) V% v. S
spring-context-support-3.2.5.RELEASE.jar0 ?- C; O# z0 Y* ^7 c; I) m
spring-context-support-3.2.5.RELEASE-javadoc.jar
7 o5 L2 f% S0 _$ h# Bspring-context-support-3.2.5.RELEASE-sources.jar% v+ R: N( {5 b5 M3 Z) `# {
spring-core-3.2.5.RELEASE.jar) z- P; F9 x6 p4 V7 D5 @& L' W
spring-core-3.2.5.RELEASE-javadoc.jar
- W# k) ~8 P* R3 @! j  l0 Wspring-core-3.2.5.RELEASE-sources.jar3 p" v4 J! Q4 h) c* n
spring-expression-3.2.5.RELEASE.jar7 m$ U! I2 K* ~! B
spring-expression-3.2.5.RELEASE-javadoc.jar
6 Q$ `4 j: f. p+ U# v! Sspring-expression-3.2.5.RELEASE-sources.jar4 `; c& e+ j+ x8 C7 E. M
spring-instrument-3.2.5.RELEASE.jar
; g0 O0 @, W9 \spring-instrument-3.2.5.RELEASE-javadoc.jar' C; s, G0 C" U( f$ f/ ^
spring-instrument-3.2.5.RELEASE-sources.jar
, s2 z& E1 c. h) a' ?spring-instrument-tomcat-3.2.5.RELEASE.jar. d; N+ j% ^0 M. _
spring-instrument-tomcat-3.2.5.RELEASE-javadoc.jar5 Q" X/ c2 S& J. \6 Q7 t3 G) ~
spring-instrument-tomcat-3.2.5.RELEASE-sources.jar& |# s5 I- q& }' H0 E8 ?
spring-jdbc-3.2.5.RELEASE.jar7 f' N+ [  N" T
spring-jdbc-3.2.5.RELEASE-javadoc.jar- s+ E/ `( C3 K% e+ p- D* C  ^
spring-jdbc-3.2.5.RELEASE-sources.jar9 f7 t: B7 l) a5 L4 C* c+ b
spring-jms-3.2.5.RELEASE.jar0 v# M1 K. i1 a( l( q# i$ `
spring-jms-3.2.5.RELEASE-javadoc.jar
/ D! N7 k+ c  V0 l1 x; C% Dspring-jms-3.2.5.RELEASE-sources.jar9 j- i, H9 ?" X1 H
spring-orm-3.2.5.RELEASE.jar- p3 _$ C/ ?5 V9 a% C+ M
spring-orm-3.2.5.RELEASE-javadoc.jar0 E0 e1 J6 }6 g
spring-orm-3.2.5.RELEASE-sources.jar
# R& B9 y& W6 p9 Vspring-oxm-3.2.5.RELEASE.jar
- {% N# \2 ^& T7 m. k  ]8 Sspring-oxm-3.2.5.RELEASE-javadoc.jar
# R% }7 A4 \. b' A: ]' Uspring-oxm-3.2.5.RELEASE-sources.jar) y6 w! ]" N% G( g- n1 N& E
spring-struts-3.2.5.RELEASE.jar
. ?6 A4 ^- O1 }$ ?, R, ]7 ospring-struts-3.2.5.RELEASE-javadoc.jar
  ]% b: V" o3 B! `' Jspring-struts-3.2.5.RELEASE-sources.jar2 Y  b. Z, T' a9 w) @6 m6 y, F6 o
spring-test-3.2.5.RELEASE.jar- x$ ?2 w  c( s8 w. g* G7 _( B
spring-test-3.2.5.RELEASE-javadoc.jar
' L& c2 n0 X/ e) r3 W$ x6 hspring-test-3.2.5.RELEASE-sources.jar, O& Z) o2 Y8 w$ p8 a. t1 t2 g
spring-tx-3.2.5.RELEASE.jar
1 ^4 E" H% i- _. Y! [$ m& Ispring-tx-3.2.5.RELEASE-javadoc.jar1 o" h6 u$ h2 d5 w! ~3 Z
spring-tx-3.2.5.RELEASE-sources.jar
4 o' N. L& X; Z# sspring-web-3.2.5.RELEASE.jar5 N1 @! n/ U4 w5 }" h) i( a/ b
spring-web-3.2.5.RELEASE-javadoc.jar
4 r! W/ T6 M. T9 C% ~spring-web-3.2.5.RELEASE-sources.jar
: e! W+ C. P( Z- zspring-webmvc-3.2.5.RELEASE.jar
9 b9 v( I7 _& v4 I% w5 Q5 ?$ d6 \; Espring-webmvc-3.2.5.RELEASE-javadoc.jar
. U6 r1 P; x/ ~spring-webmvc-3.2.5.RELEASE-sources.jar
/ n6 |& V9 q: W. B3 g# {+ T# \spring-webmvc-portlet-3.2.5.RELEASE.jar' y! E2 c& Z) Y$ n
spring-webmvc-portlet-3.2.5.RELEASE-javadoc.jar
- o* p# ]2 a8 U6 Q- Yspring-webmvc-portlet-3.2.5.RELEASE-sources.jar
( Z4 L) r1 S! h8 g' V1 Rstandard.jar- S: s/ ?; o& B
validation-api-1.0.0.GA.jar


, u1 R" N' G( c+ M' r! F

代码下载:点击下载


: v2 S" s- l7 Z8 ?) ]
5 q) {2 z. |: d3 c* X
* w: I' K) G. d1 M8 \

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

沙发
发表于 2015-03-16 20:20:55 |只看该作者
请把InfrastructureProjects项目中ChainEntityDao类中的setLevelCode方法改为以下代码:& Y1 {+ f9 g( z1 [4 @# H
  1. protected void setLevelCode(EntityType entity) throws ValidatException {
    9 Y: ^& w3 L+ h& s+ i7 b
  2.         PKType id=(PKType)super.getSession().save(entity);
    $ N$ m6 m+ F6 G
  3.         if(entity.getParent()==null){$ K) F; p9 ]" E& B3 e, |
  4.             entity.setLevelCode(id.toString());
    : ]+ `9 f1 ~+ L, F: A5 s
  5.             super.getSession().update(entity);" d5 c: I4 r( x* a  D5 e3 Z1 U
  6.         }  B# k& [: E+ q1 y9 k
  7.         else{" z2 S9 y6 Q' k) n1 R  S
  8.             EntityType parentEntity=super.get(entity.getParent().getId());, ~) b' A9 \/ M3 L* \& D  b, |
  9.             if(parentEntity==null)
    7 i( ]6 N- D& s. Z- c
  10.                 throw new ValidatException("The parent does not exist!");: F0 m( x' k- l- L/ Z, c
  11.             else{
    , i4 R: e1 K: T
  12.                 entity.setLevelCode(parentEntity.getLevelCode()+","+id.toString());
    9 r: d5 n( m$ q6 i
  13.                 super.getSession().update(entity);* k1 L9 {# c* A' h0 E9 I
  14.             }0 {& @' l% |8 A- H% Z# _3 X. J
  15.         }3 I/ O; t+ ^% q$ J3 l! W
  16.          # ~2 G  ^9 Y# d3 ?+ V) |
  17.         /*DecimalFormat df = new DecimalFormat( "000" );
    5 [  F( j1 j$ r/ q; o
  18.         EntityType maxLevelCodeEntity;/ G7 d- h! u6 e
  19.         if(entity.getParent()==null)
    2 ]/ x- m7 E" @3 m
  20.             maxLevelCodeEntity=getMaxLevelCodeExceCurrentEntity(null, entity.getId());0 c' a0 @$ d. \" Q
  21.         else
    . V, N# i$ l* O, w! Z, I1 Z
  22.             maxLevelCodeEntity=getMaxLevelCodeExceCurrentEntity(entity.getParent().getId(), entity.getId());
    , c- E4 R' O- v$ a% I
  23.          
    ) E0 @) G# H& u* ^! |, Y0 H; i
  24.         if(maxLevelCodeEntity==null){) t% _& ^# `% m
  25.             if(entity.getParent()==null)% g2 o3 n2 ]: J7 X, \5 U
  26.                 entity.setLevelCode(df.format(1));
    . q. `1 Y7 s! T5 w* i
  27.             else
    7 i- L( a" I! w( [8 j% \2 C
  28.                 entity.setLevelCode(entity.getParent().getLevelCode()+df.format(1));! {! f" C. I* s  h& R: X# t5 a
  29.         }" [/ l+ V7 i' }+ y1 B# _. @( S
  30.         else{         
    - Y; [3 C: `+ u% Z: F, ~) p
  31.             String maxLevelCodeStr=maxLevelCodeEntity.getLevelCode();
    # z" d4 {6 B# s/ p$ }& C# I. o  X0 A
  32.             int maxLevelCode=Integer.parseInt(maxLevelCodeStr.substring(maxLevelCodeStr.length()-3, maxLevelCodeStr.length()));9 M; Z8 M5 D# g, Q$ o$ W
  33.             if(maxLevelCode+1>999)
    ( l. g" n) `! i2 `. Y' k
  34.                 throw new ValidatException("The levelcode exceeds the maximum of 999!");" Q+ U7 N5 {' p, L  n5 ?
  35.             else{8 k; V' f6 ~/ j% H+ H
  36.                 if(entity.getParent()==null)
    8 ~0 c4 y1 w8 t) v# {) K
  37.                     entity.setLevelCode(df.format(maxLevelCode+1));
    ' V, L5 k6 m$ ~1 C& M
  38.                 else3 D& P' C9 Z+ H, X
  39.                     entity.setLevelCode(entity.getParent().getLevelCode()+df.format(maxLevelCode+1));1 N& z/ q# L$ d) o$ X
  40.             }0 i% {7 h. T3 S- I
  41.         }*/   
    " ^2 o8 h$ b+ M4 P' O9 J  p
  42.     }
复制代码

( y( R' w; y0 l5 {" Z" r
' i- b, {8 c: D/ L

. q1 n8 v& H- i. ?! a

点评

zhaokejin  代码发我一份吧 链接失效了呢  详情 回复 发表于 2017-4-18 09:24 回复
回复

使用道具 举报

5

主题

0

听众

155

金钱

四袋长老

该用户从未签到

板凳
发表于 2015-05-09 14:21:10 |只看该作者
不错 感谢分享。
回复

使用道具 举报

1

主题

0

听众

88

金钱

三袋弟子

该用户从未签到

地板
发表于 2015-10-22 11:57:50 |只看该作者
谢谢分享。
回复

使用道具 举报

1

主题

3

听众

341

金钱

四袋长老

该用户从未签到

5#
发表于 2016-03-17 22:51:32 |只看该作者
谢谢分享。。。
回复

使用道具 举报

43

主题

2

听众

633

金钱

四袋长老

该用户从未签到

6#
发表于 2016-05-14 23:51:56 |只看该作者
0 T) O# u! Z7 c& E& X1 u; c
不错 感谢分享。
6 O& v. h; j3 u. a& `6 u谢谢分享。。。
回复

使用道具 举报

4

主题

0

听众

302

金钱

四袋长老

该用户从未签到

7#
发表于 2016-09-26 16:42:50 |只看该作者
看看。学习学习。谢谢楼主
回复

使用道具 举报

16

主题

1

听众

447

金钱

四袋长老

该用户从未签到

8#
发表于 2016-11-24 09:56:06 |只看该作者
链接不存在的
回复

使用道具 举报

13

主题

0

听众

201

金钱

三袋弟子

该用户从未签到

9#
发表于 2016-11-25 10:04:52 |只看该作者
楼主,麻烦补充链接地址
回复

使用道具 举报

56

主题

0

听众

941

金钱

五袋长老

该用户从未签到

10#
发表于 2017-02-21 22:30:29 |只看该作者
楼主,链接地址打不开
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表