TA的每日心情![](source/plugin/dsu_paulsign/img/emot/shuai.gif) | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。0 C& q3 h% H; S5 _
4 ^* P3 R1 o3 h5 Q
BookInfoAction.java:
% @+ a) o3 Y3 I' C- /**
q$ M2 @4 v, J: k7 q; a) Q+ m - *
( d" S% X3 O' d3 T/ w2 a - */
. o K9 u+ P4 `# p9 c# \- ~ - package com.s2sh.annotation.book.action;
7 @/ g# S. S/ x% n - import java.util.List;
$ @4 ^( D/ j/ n. f; x) i9 a - import javax.annotation.Resource;1 G5 G1 P, {' C; t% Q# m4 S" F
- import org.springframework.stereotype.Controller;
# A" C9 f4 q, H" d" E - import com.opensymphony.xwork2.ActionSupport;
0 u# k7 [. g. K8 j - import com.s2sh.annotation.book.service.BookInfoService;
8 E6 G# I, j/ n2 {0 n8 _ - import com.s2sh.annotation.entity.BookInfo;
, z* R+ I4 e( X# K9 W/ ~ - import com.s2sh.annotation.entity.PageBean;
: B) h* x( l$ Y( S" W- @4 v7 O
% V- I: K2 ]+ `; u$ C) j. E- /**9 d( m- O3 R/ P* p
- * @author Administrator* F6 R5 j+ q0 w9 u
- *5 @& @* L- m# [. P d1 x/ L
- */
4 d; M$ `' a \" | - @Controller // 标注控制层对象: g& |3 B! m2 T1 D- A
- public class BookInfoAction extends ActionSupport {
. m4 s8 O* e8 S - 3 O! n$ g4 D$ i1 F% m9 n( P/ r6 g
- private static final long serialVersionUID = 1L;
0 b+ I, ^6 m$ ]. `) b( r" U+ m - " y; C. B0 e% T$ D1 b
- @Resource(name="bookInfoServiceImpl")
- t1 \# \( O2 B4 n# X! r - private BookInfoService bookInfoService;1 H, g7 X/ l1 A
-
2 |) Z2 E4 \2 b9 ~4 ^' t - private List<BookInfo> books;+ U" J, g# i5 E b L- L
- private PageBean pageBean;
# K0 \& F* B& {+ U7 b# ]% | - private BookInfo book;
1 i0 z) p2 N$ u - ( K! }; f1 f: W, \' x* i/ \& o
- : U8 S/ l9 ]2 y/ y! P
- /**
$ W, \. _/ Z- N0 c. W" `# G - * @return the book
9 }# A. p* H: R1 W - */9 U# p7 o" d* c X9 E/ Q
- public BookInfo getBook() {
# s4 t+ z- w9 _' b6 F p$ A# J3 s - return book;4 P1 A; T5 L; v3 ]9 d/ g& z
- }
, M. X: u U0 d, n3 w2 C8 F! y - /**; _ X9 D3 n$ l: J- `
- * @param book the book to set
: ?0 N7 p7 O% n - */5 n( {+ t: L4 o+ f! K# Z; e) ?
- public void setBook(BookInfo book) {* }4 Y8 z3 v" L
- this.book = book;
) a8 K X' Y+ Q& j9 }* Z - }
$ i" k: V* v, w) Y i8 k9 b - % h- T* G' K9 l% A3 a4 m2 M7 ~
- /**
f0 ^$ y2 u: _* a) Z, M- F6 \$ l - * @return the pageBean
5 K/ }) @+ x" i3 E - */
: b6 k# P% k* U2 @8 L* t - public PageBean getPageBean() {
2 C9 U2 A- F# F; ` - return pageBean;1 q; d: |4 q6 i0 i( `# {) v9 @7 b: k' L
- }
/ \( f( x& l/ O( h B - /**. v1 l K" I( p% r6 @
- * @param pageBean the pageBean to set$ V8 H! L" Y9 L, T6 q
- */
$ [3 N9 ]3 q8 s) ? - public void setPageBean(PageBean pageBean) {1 d3 G, w- r a5 V, @9 Y
- this.pageBean = pageBean;
( z$ @5 }1 p2 z+ o0 A4 `' ?% h - }
/ W! j7 w' \! |4 w. V' \/ \) [3 A
3 X( H+ C: Q% S; Y) P; i- /**+ U% C5 _7 _% H" ~7 `
- * @return the books
& x9 R# P. |7 h9 n6 n - */; H3 F& O5 u* K7 K" b
- public List<BookInfo> getBooks() {: ]7 t7 \' ^1 I7 |# H
- return books;1 N& ^/ S, R5 b
- }
O8 p6 y' n9 g( x# M/ o: A - # t* n+ o3 E/ l8 E
- /**: A7 v) Q( D" i# o
- * @param books the books to set4 _* H6 m7 M- f( [& x, u, Y
- */
0 h8 X' V C7 X9 u. ?$ `7 n - public void setBooks(List<BookInfo> books) {
2 @3 b7 b4 g7 t( _0 d$ c @ - this.books = books;
, W8 ^ ?- `# q$ ]% l$ m - }% W7 @2 k! R) F9 _2 E( H8 f9 C
- + h0 a3 W5 a4 {3 a$ T3 `3 E
- public String showBookInfoList() {
+ Y8 j* w; @( R& j4 l - pageBean.setPageSize(5);
$ i! Y( v; \8 w0 R5 ] - this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));
5 z- h( R/ P# [* S - return SUCCESS;( c$ s# z+ l; p) A! H) S
- }
; S- r, E$ x* J: u* F) u
5 ]7 S& ^ C" O! _- }, `7 q: K3 @' f* v! w: W
复制代码 applicationContext-persistence.xml:! [' @) y( T2 I- O
- <?xml version="1.0" encoding="UTF-8"?>
9 q6 i7 R! D W. H& x2 V: ^8 c) B - <beans xmlns="http://www.springframework.org/schema/beans"
( p0 u8 ]# w7 k& N% \. g - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
* T3 T9 F, g p2 N - xmlns:context="http://www.springframework.org/schema/context"
. ]* o9 v: u6 E J( Z. h - xmlns:tx="http://www.springframework.org/schema/tx"
4 [+ Z" @5 C. o/ F! n- k0 Q, F6 X: m - xsi:schemaLocation="http://www.springframework.org/schema/beans
5 j7 M) t6 e- N! x3 b5 F5 W! M; A - http://www.springframework.org/schema/beans/spring-beans.xsd 9 d' D( K4 }* O* I
- http://www.springframework.org/schema/context
- I- y- k3 V ]1 v; P x& u$ ^ - http://www.springframework.org/schema/context/spring-context.xsd
f3 H4 C9 r. O: ~ - http://www.springframework.org/schema/tx 2 Y- U6 D p$ I5 C* H. s) n
- http://www.springframework.org/schema/tx/spring-tx.xsd">
8 {6 G9 J( K" b% a4 q% y - <!-- 使用注解方式装配属性文件 -->1 ]0 S8 w( R# d5 Z- N# i
- <context:property-placeholder location="classpath:hibernate.template.properties" />/ u$ |3 U5 U y0 g/ v* d' k
- <!-- 配置数据源 -->
! S6 C; t3 O+ F% `. c+ {, g - <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">. ^$ \( L' V/ c, T) L
- <property name="driverClassName" value="${hibernate.connection.driver_class}" />
4 C" V$ M# X+ P _5 a' d - <property name="url" value="${hibernate.connection.url}" />" c+ r: H9 S, n' L; T: O0 a( ?/ A
- <property name="username" value="${hibernate.connection.username}" />
4 ^' N4 ]% l! y2 w! A4 ~ - <property name="password" value="${hibernate.connection.password}" />4 T4 k$ \0 }* a) I" K |6 k
- </bean>2 I) Y% E0 n; A7 J
-
) t- E% N8 W1 K" r, e0 w - <!-- 整合sessionFactory对象到spring容器进行管理 -->
2 F; V6 f% m$ ~ j7 n - <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
: B0 w3 r5 G& K4 u) T1 D) i - <!-- 把spring容器中的数据源注入到dataSource属性中 -->
% ^" }7 `' A+ V- D( G$ T7 W - <property name="dataSource" ref="springDataSource" />
; a" N8 p' u ^2 I6 c - <!-- 扫描装配需要管理的实体类 -->2 `. s9 a; O; H) q# a; Z1 A
- <property name="packagesToScan">
7 i4 c" W* x& y) J' A - <list>0 y8 h; E3 @' m/ X. C# S) ~! [
- <value>com.s2sh.annotation.entity</value>! z/ |' s H d. }5 o, u' b
- </list>
: Q5 B& K- `' k# J: i+ ?4 @ - </property>
" M* N! \+ I. P9 M( _- s! T; ^ - <!-- 配置额外属性 -->. ] Q1 J) j, m: l1 n
- <property name="hibernateProperties">2 @1 x# O# @( S) g
- <props>; ?, I+ f$ J T8 }+ X, I
- <prop key="hibernate.dialect">${hibernate.dialect}</prop>3 z' E* M. K" Z. x
- <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
" c0 u# k5 n F; ` - <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> U7 o- ]6 N" z0 J
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>" u, U! K/ I, d7 Q* a
- </props>$ R C; E2 A6 k7 p
- </property>1 `; V: E$ W, K9 ?: e+ v/ N
- </bean>
7 H/ w: ~- t# P5 ]3 s7 r -
5 H& H; Y" _( f7 G- D7 z - <!-- 配置事务管理器 -->+ Z3 D8 y* P8 T ]5 V
- <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">0 G8 B2 Z1 ^2 p; b z2 F6 x* Q
- <property name="sessionFactory" ref="hibernateSessionFactory" />
! J; S8 Z2 B3 A8 O7 u. y - </bean>
* L0 |& Y0 h' t7 C. p" H/ t1 L, P -
2 g q2 a5 k4 r+ j& E - <!-- 使用注解形式来管理事务 -->
3 t9 v3 e5 w# d% G" ], M - <tx:annotation-driven transaction-manager="transactionManager"/>- z) T# r( i8 P$ @
-
3 O8 v1 v' ?% { R9 ? - <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->! C! h E( i$ x& f- A1 d
- <context:component-scan base-package="com.s2sh.annotation" />
6 T8 \& C; D) Y% z' A5 A - </beans>
复制代码 struts.xml:8 X* U, |3 o: _1 }2 q
- <?xml version="1.0" encoding="UTF-8"?>: m7 I' p3 y1 D& x2 ^$ F5 A, H' Y
- <!DOCTYPE struts PUBLIC
* Q& s/ ~; a1 r8 O - "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN") [ w3 |& f* ?3 \$ f8 s
- "http://struts.apache.org/dtds/struts-2.3.dtd">8 j7 Y# r# W! P. I$ v. X
- <struts>4 {+ @& I) y$ K8 g! V
- <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->
o1 ?" N! [4 T; c9 A - <constant name="struts.objectFactory" value="spring" />
% c1 z1 `- A0 u - 6 P% S0 q6 \0 C' F% |* m0 G
- <package name="base" extends="struts-default" namespace="/" abstract="true">
k* y5 H+ C, Q8 H. @7 f' w - # r. M) ?5 i& f$ O- F- U7 T
- </package>
: B* m/ ]( {" `; N -
. ?8 k& B. p0 i; F, o - <include file="config/struts-bookInfo.xml" />
: X3 ?5 A3 P5 v7 I" `8 Y3 n \' Q - </struts>
复制代码
! O5 i) J" h7 f/ i% RS2SH三大框架采用注释整合项目案例
# o. b& u/ e: B1 R5 B解压码: u) _' [0 ? F* G- n* W4 q$ B
8 I# ~ g* D" ~) v: y" G
2 W+ M; I$ J5 j
S0 Y; Q8 r0 L4 e( r( D2 a
|
-
总评分: 帮币 + 1
查看全部评分
|