科帮网

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 项目源码 > S2SH三大框架采用注释整合项目案例
总共48087条微博

动态微博

查看: 23268|回复: 95

S2SH三大框架采用注释整合项目案例

  [复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

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

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-04-21 20:58:29 |只看该作者 |倒序浏览
    spring+hibernate+struts2集成,注解方式配置。
    6 A, e/ I8 w* D6 ]7 K% n- A1 ~% X2 e* E, o+ @  P' P* {
    BookInfoAction.java:9 p: T* ^$ r5 O3 ?  |
    1. /**
      1 L) r4 U# Z8 x; T
    2. *
      2 _+ D2 S/ y6 r1 D
    3. */
      8 `  I2 S+ I4 N: ]- D1 Y: U
    4. package com.s2sh.annotation.book.action;
      + ^0 ]2 F/ n' @% m7 S4 }
    5. import java.util.List;
      ' Y; C6 P: V) @6 d' N: Y- C# Z! k
    6. import javax.annotation.Resource;3 h( M$ X8 H! S8 N+ H7 g
    7. import org.springframework.stereotype.Controller;
      & ?. T: d5 P) p7 g# r+ q
    8. import com.opensymphony.xwork2.ActionSupport;6 w; c5 T$ {2 j  Y
    9. import com.s2sh.annotation.book.service.BookInfoService;
      9 [. E( s9 x$ o4 Q$ ~6 L
    10. import com.s2sh.annotation.entity.BookInfo;
      # @0 v1 n5 P7 ~! B% e5 z- l
    11. import com.s2sh.annotation.entity.PageBean;
      $ v3 X# j/ J8 A. E8 a

    12. 7 s+ {; K% J# q* f8 ]5 t- k
    13. /**
      ! G4 b. n! q$ [1 ^, u( {
    14. * @author Administrator
      4 z  i% l" @/ N! l9 Z, u5 H
    15. *
      ' C  r0 N# h7 m& d: O% X; _
    16. *// N! O  U( }5 _  q- r
    17. @Controller // 标注控制层对象
      0 n! \* _9 i% Y) s: o
    18. public class BookInfoAction extends ActionSupport {
      6 O" M0 F& t2 ?, S+ E& G4 {$ f

    19. ) U) f& i: E& E1 [" s& s9 ~% G
    20.         private static final long serialVersionUID = 1L;1 V9 v7 q3 d5 Z# D
    21.         8 x* O9 u" w( z+ x
    22.         @Resource(name="bookInfoServiceImpl")
      ( H* D  l/ f5 u- e+ A  O# H
    23.         private BookInfoService bookInfoService;8 _1 R" i6 \! i$ L# O
    24.         
      " I: K$ Z  {8 q) T
    25.         private List<BookInfo> books;
      . N  q$ z$ T$ a+ S
    26.         private PageBean pageBean;" ?+ ^$ O" J) ^8 O. ~2 k$ k
    27.         private BookInfo book;+ j+ {$ k% K1 d
    28.         
      8 ?" ]5 [& g8 I3 J$ A
    29.         
      * S* A0 A5 t5 U- k
    30.         /**3 H" p- V! l' Z7 h6 {
    31.          * @return the book8 R# U) P9 Y! w' x% N1 |) J- i" b
    32.          */7 b9 k8 V+ a. y) F+ v- P
    33.         public BookInfo getBook() {  G7 V0 {- N+ X$ o2 {9 g1 ~' O
    34.                 return book;
      ( {  f5 i8 P* J& v/ s
    35.         }
      ) ]4 O0 Y: b3 a4 I2 t2 [
    36.         /**4 a. i3 I" ]% M
    37.          * @param book the book to set. i; x: x# ?/ C7 N! J* p' f9 V
    38.          */2 N, s. |8 U0 B4 K$ u
    39.         public void setBook(BookInfo book) {( N, Q; w, a) I. u/ Y
    40.                 this.book = book;
      & h" B3 G' v9 J% H% ^
    41.         }+ Q  T0 \$ X* V2 j) T: @* J

    42. # O# o7 x  F7 K9 l4 Z
    43.         /**9 \3 }4 z+ I' C8 s+ q! L
    44.          * @return the pageBean
      ! o% G5 F3 F* U# Q& d
    45.          */& m8 f. y- Q& _& ~2 `1 r
    46.         public PageBean getPageBean() {
      9 }% I* Y" k; E
    47.                 return pageBean;6 `/ q9 D8 `( |# ~0 U
    48.         }
      ; D2 e/ @9 U$ H! f
    49. /**; Z0 @8 Q4 l2 U4 b: U
    50.          * @param pageBean the pageBean to set
      4 d% K$ w2 E# F4 p% z2 C
    51.          */
      8 w0 g% N3 n, H( ~: V7 @" o
    52.         public void setPageBean(PageBean pageBean) {* g( ^  R4 Q: b* v% O. N$ e/ G* L
    53.                 this.pageBean = pageBean;# x) m9 \, s) ]" _  I; G
    54.         }7 p  ~1 _5 k/ R/ t

    55. $ V2 C& @2 c% A4 n* Z+ P5 }/ Q
    56.         /**$ _+ t$ E1 e1 f0 ^
    57.          * @return the books
      + x' c; ?9 d, k; ~2 d8 v2 E( Z9 d
    58.          */4 D  p- G+ ^1 P1 T. }( T
    59.         public List<BookInfo> getBooks() {
      4 w5 F7 Y* a& y7 V3 ]% r
    60.                 return books;3 r8 B4 z5 e& S# u
    61.         }# H! v2 v) b, Q) Z2 [& v
    62. 0 K: V  n" X2 S# y1 S
    63.         /**
      " W( H! f  S; n. ?9 L" B
    64.          * @param books the books to set
      / Z4 [5 a/ h* p4 q
    65.          */: M% E- z: \; t. c, I& {9 q+ a, X
    66.         public void setBooks(List<BookInfo> books) {
      % j8 N: [; C2 s+ e
    67.                 this.books = books;* r% j3 a: h& E6 K! h
    68.         }5 I% s! E  a) _7 d9 c

    69. & |) j3 B5 ~  O; {  U. Q9 {
    70.         public String showBookInfoList() {" {* s$ L( ~! e4 L  M+ y  Q+ n
    71.                 pageBean.setPageSize(5);
      7 P7 C& K  ?0 [1 `7 m" z9 L0 d- [
    72.                 this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));
      : S6 d3 u" t  u% |
    73.                 return SUCCESS;6 I% x9 s% v3 I" Q! g  e8 u
    74.         }
      . w) I9 a& o$ I9 s8 a1 G2 \

    75.   ]' W+ Z& H2 F) N, v. |; ^1 @9 z
    76. }
      # K$ S3 P% V8 r' M( n
    复制代码
    applicationContext-persistence.xml:
      o2 F5 x/ z( h0 L/ ^0 X
    1. <?xml version="1.0" encoding="UTF-8"?>2 `3 A' j+ F( K) J( M8 @
    2. <beans xmlns="http://www.springframework.org/schema/beans"
      # _5 X( b( I/ j0 N5 O2 K+ k
    3.                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      ( p7 k! Q# A! t0 n+ \1 _
    4.                 xmlns:context="http://www.springframework.org/schema/context"1 M5 U& p1 A  F0 N# c
    5.                 xmlns:tx="http://www.springframework.org/schema/tx"
      . O2 {0 F4 {  i- O. b6 w
    6.                 xsi:schemaLocation="http://www.springframework.org/schema/beans
      " E' _* v( P# Y6 A' K) I, `
    7.                 http://www.springframework.org/schema/beans/spring-beans.xsd
      8 r" }! Y2 f/ c1 \8 `# h
    8.                 http://www.springframework.org/schema/context
      " T9 A* `9 C4 T3 ~4 G3 F
    9.                 http://www.springframework.org/schema/context/spring-context.xsd % ?- k4 \5 {# T. V( v( m* R- T0 P3 X
    10.                 http://www.springframework.org/schema/tx
      ( C% e9 @2 \. q9 z0 ?  ?( M$ X% @
    11.                 http://www.springframework.org/schema/tx/spring-tx.xsd">
      ; E9 D. q6 g$ c. F, e( Z& T1 u
    12.                 <!-- 使用注解方式装配属性文件 -->
      2 J2 j- O: u6 k# W+ z
    13.                 <context:property-placeholder location="classpath:hibernate.template.properties" />2 t: d; k( A- |9 O
    14.                 <!-- 配置数据源 -->3 a% ~. ^1 V- R( C. E' c
    15.                 <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      0 s6 `' e5 N4 l
    16.                     <property name="driverClassName" value="${hibernate.connection.driver_class}" />; V2 T5 K0 m: m. S' w2 W5 s
    17.                     <property name="url" value="${hibernate.connection.url}" />: i8 a  T2 z: T
    18.                     <property name="username" value="${hibernate.connection.username}" />2 R7 |5 R3 I; W/ m( J$ p
    19.                     <property name="password" value="${hibernate.connection.password}" />; l7 v: p2 k! l' N. O: [
    20.                 </bean>
      5 [' a2 D! i$ c
    21.                 ) U5 v% k6 g! s5 \! Z) r; L' N
    22.                 <!-- 整合sessionFactory对象到spring容器进行管理 -->
      * _$ F4 t% l9 {# J- P0 [
    23.                 <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
      & V, }' u) k$ E7 f% d. C6 S
    24.                     <!-- 把spring容器中的数据源注入到dataSource属性中 -->
      4 O/ l: a. a+ |( @* O! L) m
    25.                     <property name="dataSource" ref="springDataSource" />/ i' }: S& o* ]; d
    26.                     <!-- 扫描装配需要管理的实体类 -->
      4 b. X# N7 I4 \% F0 G2 x: |
    27.                     <property name="packagesToScan">6 |/ E! _( @5 w! r$ Y# B/ f; @
    28.                         <list>. m7 E+ N# x3 m" a4 J* k
    29.                             <value>com.s2sh.annotation.entity</value>
      ; s" |: m+ w( P4 X, D$ X# T2 `7 O. Q
    30.                         </list>5 S" _& W9 |. Q  S9 i& M9 S( M) h
    31.                     </property>
      ( l' Y+ t- w, o2 a2 E
    32.                     <!-- 配置额外属性 -->! g- s+ u8 J- z# o& L: E# ?4 b
    33.                     <property name="hibernateProperties">
      - O  D, T  |! u5 t
    34.                         <props>
      1 [& b0 e' H7 B. h/ u9 @
    35.                             <prop key="hibernate.dialect">${hibernate.dialect}</prop>
      5 }4 l8 b3 h7 M1 P7 `7 w
    36.                             <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
      % A& p* E: Y6 u5 H
    37.                             <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
      , f, X& M3 P8 ?  `, z$ j  |  X
    38.                             <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
      0 B2 @  f# ~% d7 W$ j7 C
    39.                         </props>
      " M. w3 `8 i$ i5 t2 `0 Y+ X3 j& o
    40.                     </property>
      ' p$ K+ B0 I5 H
    41.                 </bean>
      ) w) N6 }' u" Q
    42.                
      ' z& y0 _0 W5 x. n
    43.                 <!-- 配置事务管理器 -->' @3 g( ~, r( p4 _9 I
    44.                 <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">$ m, {; l5 ]& I1 C- U- s
    45.                     <property name="sessionFactory" ref="hibernateSessionFactory" />
      ) C9 p" k+ l: R* P/ L
    46.                 </bean>
      & W/ K8 R% P. I8 P; W
    47.                 : _* w) v# e( U6 a8 \* r
    48.                 <!-- 使用注解形式来管理事务 -->
      % |% y; w# \7 ^# _' a2 Z+ i
    49.                 <tx:annotation-driven transaction-manager="transactionManager"/>1 V: B1 G$ }/ V3 H4 [% q
    50.                
      1 A; j* r4 F" X7 f! b
    51.                 <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->
      6 E1 W) x  `  V7 l* X) a# e
    52.                 <context:component-scan base-package="com.s2sh.annotation" />$ P; D  O) a" N1 ?/ N
    53. </beans>
    复制代码
    struts.xml:
    ; v: ^5 O/ H  k, K7 ], y
    1. <?xml version="1.0" encoding="UTF-8"?>  F* r6 d- N* N0 M, T2 O
    2. <!DOCTYPE struts PUBLIC: R0 F# u& R1 a: D  T. A
    3.         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
      ( s! _9 m9 j& q  c% O1 |. c" [
    4.         "http://struts.apache.org/dtds/struts-2.3.dtd">- D1 e' }$ r+ W( N8 Y; @5 b) r
    5. <struts>
      ( \) D* c4 s! @0 S5 o
    6.     <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->: S5 @! `2 C! C2 y
    7.     <constant name="struts.objectFactory" value="spring" />$ W  y& G) H1 b' w" [9 f
    8.    
      4 F. q+ H+ a; b  u1 P+ r& t( Z8 ~
    9.     <package name="base" extends="struts-default" namespace="/" abstract="true">/ c% j" c5 f8 M/ C, P
    10.         
      - z2 f6 m9 k# b7 Y& e+ X9 P  b% z
    11.     </package>
      ! d9 o% ?+ }9 V. k  `9 c" ]& W
    12.     5 I/ s( F- h8 d7 X6 K4 @* _
    13.     <include file="config/struts-bookInfo.xml" />1 e% A+ U3 ~4 i& D" B' \& p! H, K
    14. </struts>
    复制代码
    5 k/ A5 J% w! Y6 E- I% W
    S2SH三大框架采用注释整合项目案例3 n1 Q) Y0 M# t$ i# W4 f7 _
    解压码:
    游客,如果您要查看本帖隐藏内容请回复

    . ]) F, g3 q! Y/ z; \3 U& J8 B+ ~0 E( p5 o
    ( H$ P# ^: @7 Q0 Q- o8 o

    : V# [) o& L: W# X3 y4 e

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


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

    已有 1 人评分帮币 收起 理由
    z962416 + 1 很给力!

    总评分:  帮币 + 1         查看全部评分

    本帖被以下淘专辑推荐:

    34

    主题

    1

    听众

    518

    金钱

    四袋长老

    该用户从未签到

    沙发
    发表于 2015-04-22 18:15:25 |只看该作者
    谢谢分享了
    回复

    使用道具 举报

    72

    主题

    0

    听众

    1034

    金钱

    五袋长老

    该用户从未签到

    90后

    板凳
    发表于 2015-04-22 22:59:20 |只看该作者
    非常感谢楼主的分享~
    回复

    使用道具 举报

    17

    主题

    3

    听众

    1275

    金钱

    五袋长老

    该用户从未签到

    地板
    发表于 2015-04-24 17:43:27 |只看该作者
    谢谢楼主分享
    回复

    使用道具 举报

    4

    主题

    0

    听众

    244

    金钱

    四袋长老

    该用户从未签到

    5#
    发表于 2015-04-28 17:07:21 |只看该作者
    是最新的莫
    回复

    使用道具 举报

    72

    主题

    0

    听众

    1034

    金钱

    五袋长老

    该用户从未签到

    90后

    6#
    发表于 2015-04-29 16:11:52 |只看该作者
    谢谢楼主的分享,非常不错的源码
    回复

    使用道具 举报

    124

    主题

    3

    听众

    1442

    金钱

    七袋长老

    该用户从未签到

    7#
    发表于 2015-05-05 22:12:28 |只看该作者
    学习下,可以吗' k$ S/ y4 M! l/ z' A  S
    回复

    使用道具 举报

    3

    主题

    0

    听众

    110

    金钱

    三袋弟子

    该用户从未签到

    8#
    发表于 2015-05-06 10:50:44 |只看该作者
    study,study。。。。。
    回复

    使用道具 举报

    1

    主题

    2

    听众

    173

    金钱

    三袋弟子

    该用户从未签到

    9#
    发表于 2015-05-08 14:43:00 |只看该作者
    好的  学习学习
    回复

    使用道具 举报

    2

    主题

    0

    听众

    538

    金钱

    科帮VIP

    该用户从未签到

    10#
    发表于 2015-05-12 16:39:22 |只看该作者
    我i我i我i
    回复

    使用道具 举报

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

       

    关闭

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

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