TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。
* f5 }5 P0 [' |7 ^1 B, o9 V% E' O, M& q7 `
BookInfoAction.java:
' t+ ~" ^7 z8 G$ ~- /**
+ x, [4 ^3 ~& q - * - U: M4 b) l2 c% s
- */
6 h% y2 U. }% T5 c) |/ ?1 q: t - package com.s2sh.annotation.book.action;
9 _& g- |& N3 @ - import java.util.List;
. @4 Y& Y6 I/ I/ ^$ @1 f - import javax.annotation.Resource;
! l& w( W) ]) R+ F* _ - import org.springframework.stereotype.Controller;3 C2 u# u9 K' G5 F! X
- import com.opensymphony.xwork2.ActionSupport;- a) F6 \ C2 m* ~) Y, f4 v7 s
- import com.s2sh.annotation.book.service.BookInfoService;
( t0 x! C. _# q7 m1 G/ E - import com.s2sh.annotation.entity.BookInfo;# E5 ~- H. V; Y# l& y8 |, c
- import com.s2sh.annotation.entity.PageBean;" G+ {( _6 j4 D9 c! k7 f$ x B
: Z1 o3 j# Y5 J- /**7 t1 i/ D& V& g% Q: |
- * @author Administrator1 ?8 E H/ `$ J0 H
- *9 n+ R( d- [# G; j! O
- *// F8 r6 E4 a! O* E
- @Controller // 标注控制层对象; S# m6 L' o/ `
- public class BookInfoAction extends ActionSupport {
d; y/ {/ x/ S3 O l. X* C4 x1 w: e - 4 f) Y* q4 [8 |. G2 K) v
- private static final long serialVersionUID = 1L;, M6 q. |( Y' \" |( L
- 2 p g9 O6 `# }
- @Resource(name="bookInfoServiceImpl")
. t4 }* `$ l, D - private BookInfoService bookInfoService;3 v* H9 V' \; X) a4 c+ E0 t
- ) x3 W9 a3 o. {" m
- private List<BookInfo> books;: R) S5 b3 n* ^+ X+ f) P! Z
- private PageBean pageBean;- N$ L7 X E% E2 v" v
- private BookInfo book;+ Y- ]1 ~$ B. D ]/ o' |2 V
-
) H- D& r" y% a9 Q9 e0 }7 i5 u -
2 r( C" Z- Y |0 l) V# `5 N: ` - /**
# y* S w# L' X& r - * @return the book
: U( P/ Q( Z, T) o+ p" s' R - */5 i: t8 d% \/ n8 T4 {" A3 G
- public BookInfo getBook() {+ l- u0 e O, O, P8 t& [( ]
- return book;% g# l2 O2 u) Q4 v: P- ~9 L$ d
- }
8 m: b! ~- k5 V' Z+ c/ { - /**
$ x$ m* k6 b, C- m# f, b; { - * @param book the book to set
1 M! K2 A& [0 [ - */
8 k- N& S' ]- x - public void setBook(BookInfo book) {3 u$ @: ^2 h5 _, E, [7 V3 q& K0 X2 }& B
- this.book = book;4 C9 g$ t! x$ H6 m6 a: b _
- }
% |( t% R7 V# w6 W
Q3 u) z$ S! }) O$ x* j0 y- /**
$ Q9 O' o( A: S - * @return the pageBean
. Z; V+ g k1 G! T - */: r2 s S& G8 E# q" u/ D
- public PageBean getPageBean() {6 j2 {# X* {' {. N5 o0 ^, K9 O( j
- return pageBean;, W) D' U8 N& U! s
- }0 t0 a+ k4 o4 H, `+ ]( P$ O
- /**
* I, e' f# z N - * @param pageBean the pageBean to set
, ?- J7 Q5 @! P5 V1 r6 w: K" k- _ - */
0 C# E5 h3 d- }% Z7 T - public void setPageBean(PageBean pageBean) {( b# k% V n" p# M5 K2 C) X
- this.pageBean = pageBean;9 X1 M3 ]2 a+ _$ A8 b
- }! w1 C! D4 j. L# X4 k0 t" T
- 5 V* a) E2 [: o3 M$ |* m+ d0 d1 F
- /**
( d5 {; W* K6 z, R - * @return the books" z0 h2 h) g- r8 M& S
- */4 N4 y# o1 U# a: S" d1 d
- public List<BookInfo> getBooks() {+ ~7 C$ B4 D$ A- I/ j( i# l5 w$ z4 ?$ {
- return books;* U& x6 y* D* ? O$ G7 S4 `$ G$ E
- }) k, K2 Y1 b+ y
# E; z3 l p* R, ~) u$ I9 \- /**
/ V$ z O2 }% `+ A# ` - * @param books the books to set
1 O! n- k' ^( ~ n8 j2 a9 g3 U$ { - */6 _+ R, |: d' m; e) c! [2 t. ^
- public void setBooks(List<BookInfo> books) {! Y; {6 Y' n3 U m* z) Q1 X+ `
- this.books = books;
5 n H( k4 g9 U* [; b - }
" ]' E& g9 X; y: J( M* I- r" g( e - 5 s) k( ]* f& A& F# C
- public String showBookInfoList() {; i. d3 [# x8 K$ u1 {
- pageBean.setPageSize(5);
f; \1 D; H0 _0 a5 F2 n' u' o - this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));- @ d: { }9 }3 ~
- return SUCCESS;
$ u9 z% T7 v% \ - }; ?: {1 e2 H6 J- Q; _+ D
o! }! D3 P; T& I- }/ j. ?, n/ n C! R6 e0 @
复制代码 applicationContext-persistence.xml:0 `" B0 ~0 i. q: o5 Y" N/ R
- <?xml version="1.0" encoding="UTF-8"?> M1 o1 r3 J# ~5 g
- <beans xmlns="http://www.springframework.org/schema/beans": |( i4 T+ O) K' e0 K+ \
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/ t% @. T9 V2 v
- xmlns:context="http://www.springframework.org/schema/context"( G* v8 h" ^" Y8 X# p, C; Z
- xmlns:tx="http://www.springframework.org/schema/tx"( }! T! L% K' X' W$ Q
- xsi:schemaLocation="http://www.springframework.org/schema/beans
2 T' T8 w) V u - http://www.springframework.org/schema/beans/spring-beans.xsd
% ?, c+ A6 @$ S - http://www.springframework.org/schema/context $ [9 C# A1 |/ s
- http://www.springframework.org/schema/context/spring-context.xsd & @& _1 K8 _2 f- t, D/ L) d& i$ I
- http://www.springframework.org/schema/tx
8 j/ K- Z+ N" |' h6 z3 l8 | - http://www.springframework.org/schema/tx/spring-tx.xsd">
; O {. I3 A3 s! x4 m$ D - <!-- 使用注解方式装配属性文件 -->+ d5 {& h( Z% R8 s7 ~% p
- <context:property-placeholder location="classpath:hibernate.template.properties" />% d& N! S4 y( c7 Y+ D2 J6 G
- <!-- 配置数据源 -->
& B. `* J( m V8 t% {+ g3 V - <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
2 Z3 q: x- M! C2 k( q: c1 ? - <property name="driverClassName" value="${hibernate.connection.driver_class}" />
: h' k; ]! y0 [" C2 i - <property name="url" value="${hibernate.connection.url}" />
1 m8 u- k" S4 f: a! [ - <property name="username" value="${hibernate.connection.username}" />
z9 C( S9 c+ z) W, P3 E0 i2 d) [' S1 j - <property name="password" value="${hibernate.connection.password}" />
1 U# Z4 t2 z o1 M5 n* R% w - </bean>' |9 H2 V7 U! n6 Q( Y% u
- . e% x* y8 _: a8 S5 z% X$ d- O- Q
- <!-- 整合sessionFactory对象到spring容器进行管理 -->8 ?* @9 z, }9 \- l7 Z/ n3 O8 b
- <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
2 \( V" ^2 l; a9 X* ?& }6 V - <!-- 把spring容器中的数据源注入到dataSource属性中 -->
. B1 c. V9 L2 r* k. U) v. v - <property name="dataSource" ref="springDataSource" />. B* i4 E& T5 \1 b. F' l
- <!-- 扫描装配需要管理的实体类 -->
9 p3 c B. S7 n- | - <property name="packagesToScan">
% q& M A# F8 `% g, ~ - <list>: I$ ]: U1 T3 \1 |3 t8 w, [1 M# a
- <value>com.s2sh.annotation.entity</value># E% Z4 i: B; |: h5 k/ p
- </list>8 A6 O3 y2 B1 {: X* S1 v
- </property>. |% Z$ a6 d/ f! w
- <!-- 配置额外属性 -->) r) q+ ]. h1 h2 [- i" O2 a; j+ z
- <property name="hibernateProperties">( L: Z, F1 g b; H, b# S* Y) c
- <props>8 V9 D1 i6 u9 |3 s( e
- <prop key="hibernate.dialect">${hibernate.dialect}</prop>
0 E# W9 @* {0 T4 Z! S8 L - <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
' c! e- ?* I% T; O$ I - <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>: w! q) Q3 `: c5 U. [ ?' R* Q
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>; u8 W8 F* B5 ~1 Q: {1 V4 H
- </props>
4 J. J3 {8 I/ B- D& Q# O7 I - </property>4 y1 p! U" E8 u2 E$ d& J; N
- </bean>
% j. I$ I8 k K0 t( e -
a2 x4 m4 b3 u4 m6 b9 N: }1 M0 c# D - <!-- 配置事务管理器 -->- ^1 o4 f: K9 A
- <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">/ e7 m3 B' e6 f; R
- <property name="sessionFactory" ref="hibernateSessionFactory" />
) k1 T! q$ s/ m* d" M - </bean>
& {# t6 h6 F/ V7 _. E3 \5 ~' \ - % {, [) @+ H7 {. j4 x
- <!-- 使用注解形式来管理事务 -->
4 W+ b% U/ y! a& a - <tx:annotation-driven transaction-manager="transactionManager"/>
: ~! I( z4 p* P' A- a- |& y - 1 {0 Q& P, ~! [' Z( g, e( ?7 c2 K
- <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->
( c( }! N# q( E. k/ V. P - <context:component-scan base-package="com.s2sh.annotation" />' \) U+ m, E9 B% p1 F3 z# S3 @
- </beans>
复制代码 struts.xml:
+ [2 Y$ i4 Z' _/ P& @$ e- <?xml version="1.0" encoding="UTF-8"?>
: |% r3 {" [( M - <!DOCTYPE struts PUBLIC
- J5 O/ J9 p5 k l1 g6 [3 H2 c. x - "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" w# }' s8 V' c+ x9 J5 v6 f2 a- [
- "http://struts.apache.org/dtds/struts-2.3.dtd">/ ?. A+ Q1 {6 @
- <struts>% r3 l" j @- K1 g, m# R
- <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->
: }& w/ p2 a' [" W) H# n8 ?3 M6 @. Z0 X - <constant name="struts.objectFactory" value="spring" />8 D) k9 a/ ^( A5 }, ?# I/ A: T, x
- & C* ], `4 [, X( q6 Q
- <package name="base" extends="struts-default" namespace="/" abstract="true">
( m& S, k0 M' Z) V# P4 d# R" f; {0 n$ k -
6 E" s/ M. J+ ~ - </package>
$ @6 H$ P4 W2 l. N -
7 b( e; Y; v) F7 p# L& \" v - <include file="config/struts-bookInfo.xml" />
% J5 J! X5 X l2 N, j3 }( [/ a - </struts>
复制代码 ; d% ^" S, Z% p
S2SH三大框架采用注释整合项目案例* U8 p. }: k+ w- B
解压码:% E/ Q. H# ?+ \4 I
1 y! f% X( z: Y7 ^
! C3 K1 q# D+ l2 o5 K, \+ A
5 ~# m" f3 E: v |
-
总评分: 帮币 + 1
查看全部评分
|