我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 项目源码 > struts2+spring+hibernate整合案例代码
总共48087条微博

动态微博

查看: 6278|回复: 14

struts2+spring+hibernate整合案例代码

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-04-13 21:09:04 |只看该作者 |倒序浏览
    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。( v6 }) G' J( p% N, c
    ( L8 E0 g' u; x' V: \
    集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。4 x7 Q( W7 X8 s+ Y8 p- I6 `
    " u! I  H' W. L/ N
    Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持。Spring一方面作为一个轻量级的IoC容器,负责查找、定位、创建和管理对象及对象之间的依赖关系,另一方面能使Struts和Hibernate更好地工作。
    . `& c+ x9 o) a' c) s  r* l
    # x( `3 I" [! S  C1 g; }3 B# Z* d项目分层结构:action、 service、dao
    0 j: g$ V; x+ i3 y$ ?. x: t6 w项目配置自定义异常错误实现、重写拦截器对用户进行拦截判断、使用过滤器 统一设置字符集。
    : M$ j, S; N3 ^# _
    2 y! S- {% F, P/ F: s/ m9 v, B) x- F: B$ A功能实现:基本的登陆、失败或者成功的跳转以及登陆成功后用户数据的新增操作。数据库表自建。
    2 ?1 i7 `* e- }8 f" N; f4 m0 Z+ i  [( X
    applicationContext-common.xml:
    , E( L3 Y! k7 d4 k& i6 Y) p7 o3 ^7 S2 f9 d2 y* h# _. a
    1. <?xml version="1.0" encoding="UTF-8"?>
      6 ~+ k* ?$ g- @2 ]
    2. <beans xmlns="http://www.springframework.org/schema/beans": W& ~8 q* d2 l4 d0 n
    3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"4 K* t3 e8 J" G1 d$ O4 z+ i
    4.         xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
      " G3 W' ^7 L4 I) d! U) ^) I
    5.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
      . \  n+ p, K/ T% I; P$ z
    6.                 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
      ' x) m+ x' _$ _) ^% ]5 P) t
    7.                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd2 N: C5 z. {. N4 |: T- J; E' \
    8.                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">* q9 A' O4 [0 ?3 [% C
    9. ! h" e7 n; U- U# Q; w& m; F8 L
    10.         <!-- 启用spring注解支持 --># h6 Y+ Y4 a& L( ]# F/ m) v
    11.         <context:annotation-config />
      4 U7 p; Y5 E0 K6 r% S, {* C8 K
    12. & v" x; t* N% y6 H+ Y
    13.         <!--配数据源 -->
      ! t# ^; A: h6 e& r- @+ [1 ]) k! J
    14.         <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
      1 ^2 v, x* j$ @) X4 q6 M; H: D
    15.                 destroy-method="close">
      + i2 ~' B- Z, F+ E( [
    16.                 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />& f; v/ ]9 n/ x$ c
    17.                 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />2 k& P" w" T6 s" a% D
    18.                 <property name="username" value="ssh" />
      * r9 R* W; N$ D6 \& M8 |
    19.                 <property name="password" value="ssh" />
      3 i* P; w& r) R4 d6 W$ Z* o
    20.         </bean>
      / G2 z0 T1 ?, u! [$ H7 s

    21. ' X; V& Y1 n. {# q
    22.         <bean id="sessionFactory"
      , A; v% T+ f. H6 c' S+ F( ]
    23.                 class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
      ; g9 i+ `9 o1 ?9 ]) n0 v# y/ K( W
    24.                 <property name="dataSource" ref="dataSource" />
      7 s, P% C% E+ @1 q: @4 E4 F
    25. 0 n1 d/ E2 R! {* L# x3 Y
    26.                 <property name="hibernateProperties">
      ; l* d. J( N7 b3 k( D; \
    27.                         <props>
      " Y# Q! N; o7 F9 @0 l
    28.                                 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
      + R: ^" i4 V6 a. w% k) s' _3 U
    29.                                 <prop key="hibernate.show_sql">true</prop>* B' O0 y% r  c# ~. e& j
    30.                                 <prop key="hibernate.hbm2ddl.auto">update</prop>
      - y) V4 J* Y! H; x
    31.                                 <prop key="default_schema">ssh</prop>3 ]/ ]& h. ~: g: z. ]
    32. / f* I% l7 A- t& v
    33.                         </props>
      & ?& A1 t- Q) s3 A' `
    34.                 </property>
      1 q/ T$ @5 E5 L4 l9 K5 |, B' u
    35.     <!-- 如果使用配置文件 -->8 Z+ _2 {0 a! ?* \1 J
    36.         <!-- <property name="mappingLocations"> <list> <value>classpath:com/jialin/entity/User.hbm.xml</value>
      % M* `) y) N/ q4 n9 s; @; |
    37.                 </list> </property> -->* ?' c  ~- E4 T& t. x* x3 U
    38.                 <property name="annotatedClasses">* Y$ l# i6 D& Y& h8 M& M! b
    39.                         <list>
      1 Y5 @+ A% m! q% |" w1 {8 q
    40.                                 <value>com.jialin.entity.User</value>+ m8 |; q, q/ k  ~. E6 }
    41.                         </list>( \, i0 h5 h7 K# z3 B9 G4 v4 G4 J
    42.                 </property>
      0 H: M0 F1 }, }7 ~) z

    43. . w* M/ X( X+ I% J4 R6 z6 q
    44.         </bean>
      % ]/ Z, j% y- k' p# t3 D4 J
    45.         
      # v9 j" S( J4 S6 u/ s" c

    46. 4 h! Y0 ]1 F8 N
    47.         <!-- 配置事务管理器 -->: n) W2 o/ S( Y9 X
    48.         <bean id="transactionManager"* k# W/ P$ a- i" K. i2 j" _  i6 m4 O
    49.                 class="org.springframework.orm.hibernate4.HibernateTransactionManager">
      ) l( }2 v3 h' P
    50.                 <property name="sessionFactory" ref="sessionFactory" />: M2 n7 L6 u7 O' c
    51.         </bean>" g: @5 N' q8 N. `; ^; o. R
    52. 1 p( b+ @, z+ o  u% ^
    53.         <!-- 事务的传播特性 -->
      # L; K, J+ Y' T8 h. A
    54.         <tx:advice id="txadvice" transaction-manager="transactionManager">8 K& d! R2 w$ D. Q6 R! K& w6 O
    55.                 <tx:attributes>8 |$ Z3 G! r) u; a
    56.                         <tx:method name="add*" propagation="REQUIRED" />
      4 H0 i. `1 s' B% Z3 h( k* p
    57.                         <tx:method name="delete*" propagation="REQUIRED" />7 O1 F! g2 u) M
    58.                         <tx:method name="modify*" propagation="REQUIRED" />
      * R/ p' X! |! b# Q( z+ }
    59.                         7 }8 Z% _6 }- _
    60.                          <!--hibernate4必须配置为开启事务 否则 getCurrentSession()获取不到-->
      # _$ p% r) U! e; `
    61.                         <tx:method name="*" propagation="REQUIRED" read-only="true" />
      1 s0 S6 n0 H# X6 Q( H) K- ?( f
    62.                 </tx:attributes>9 f; J; \4 H% L' _9 a" O4 ?
    63.         </tx:advice>% I+ N7 p$ E" `/ C) v  x

    64. 1 K! \# ]7 ~6 a/ G+ h5 M( g
    65.         <!-- 那些类那些方法使用事务 -->
      2 d1 Z3 {# b+ C8 z4 p( S! _" q
    66.         <aop:config>
      ; B, D3 H+ Q7 a# c/ W' _
    67.           <!-- 只对业务逻辑层实施事务 -->
      # C9 v& x& n. H" X: ]3 q) m) x- u
    68.                 <aop:pointcut id="allManagerMethod"- `% t: q. h- L3 t
    69.                         expression="execution(* com.jialin.service.*.*(..))" />$ B& r% O# d% q' k
    70.                 <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txadvice" />
      ( k' z5 v. J5 N( S; y6 ]2 R
    71.         </aop:config>9 a! _) U! K- B' o: Z( u3 p
    72. - c% r6 e( }6 Z6 K, B3 [& a
    73. 2 J; |& h1 Y) D) b/ \4 N7 L2 V
    74. </beans># I+ H2 d) o6 S& n0 _: E' ^
    复制代码
    8 r% M6 q- I. F: ~& A: K: B

    / A% U8 m/ ]4 U! ?6 d% z1 z/ pstruts2+spring+hibernate整合案例代码  ^0 }+ \" U9 j- Q5 C

    # B6 n3 o' ?9 o0 N# k! u; m& y
    9 x: m/ ^5 k% @. W

    点评

    xiaogu  资源失效,求补  发表于 2018-12-15 16:39 回复

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


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

    1

    主题

    0

    听众

    80

    金钱

    二袋弟子

    该用户从未签到

    沙发
    发表于 2015-04-16 10:19:04 |只看该作者
    互相学习才是好人
    回复

    使用道具 举报

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    板凳
    发表于 2015-04-16 18:58:07 |只看该作者
    wudong0406 发表于 2015-4-16 02:19 0 w% e( i! G- c) {( O. e
    互相学习才是好人
      c6 _  e& r; v
    哈哈哈

    105806hbbu4ej3c5lduj3p.jpg (33.01 KB, 下载次数: 84)

    105806hbbu4ej3c5lduj3p.jpg
    回复

    使用道具 举报

    woniu 实名认证   

    2

    主题

    0

    听众

    330

    金钱

    四袋长老

    该用户从未签到

    地板
    发表于 2016-04-12 12:16:16 |只看该作者
    这个项目太棒勒!下下来学习下!
    回复

    使用道具 举报

    2

    主题

    0

    听众

    289

    金钱

    五袋长老

    该用户从未签到

    5#
    发表于 2016-05-05 15:46:15 |只看该作者
    6 n% r; {9 B" K# l
    谢谢分享了   
    回复

    使用道具 举报

    2

    主题

    0

    听众

    289

    金钱

    五袋长老

    该用户从未签到

    6#
    发表于 2016-05-05 15:46:47 |只看该作者
    / B* R. i4 n' h/ b3 |/ R+ O! k
    谢谢分享了   
    回复

    使用道具 举报

    2

    主题

    0

    听众

    289

    金钱

    五袋长老

    该用户从未签到

    7#
    发表于 2016-05-05 15:47:05 |只看该作者
    感谢分享   ,
    回复

    使用道具 举报

    2

    主题

    0

    听众

    289

    金钱

    五袋长老

    该用户从未签到

    8#
    发表于 2016-05-05 15:47:15 |只看该作者
    感谢分享   ,
    回复

    使用道具 举报

    1

    主题

    0

    听众

    84

    金钱

    三袋弟子

    该用户从未签到

    9#
    发表于 2016-05-13 13:46:58 |只看该作者
    感谢分享,对我昨天上课学习的内容有很大帮助
    回复

    使用道具 举报

    1

    主题

    0

    听众

    70

    金钱

    二袋弟子

    该用户从未签到

    10#
    发表于 2016-06-26 01:43:15 |只看该作者
    学习学习,好东西$ P/ W- E  G7 G$ Q" v
    回复

    使用道具 举报

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

       

    关闭

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

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