TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。$ @ e F Q; Q0 y& @* b( ^. z
( q- r8 g- C9 c [BookInfoAction.java:9 f- k3 G0 { t- M- ]0 ~# _
- /**
- {* t8 r; r1 I* l, l8 C5 H1 b# u - * - n9 a- l4 ?- w* w( q% Y
- */
% S" V( Q& z6 t- r - package com.s2sh.annotation.book.action; M! e$ t$ Q$ {8 \! f8 Y
- import java.util.List;
/ @0 b# k5 |+ s - import javax.annotation.Resource;
% D- z8 x- H: r% X5 V2 `( r6 o' ] - import org.springframework.stereotype.Controller;% y7 [. T. X) H9 W' @0 r
- import com.opensymphony.xwork2.ActionSupport;- L( `" u. V4 \5 N o: V# u
- import com.s2sh.annotation.book.service.BookInfoService;2 c% j; f1 L: B( I, ?2 Q
- import com.s2sh.annotation.entity.BookInfo;
) g0 H" {, e; i! h - import com.s2sh.annotation.entity.PageBean;
+ z5 z) t, R) ~, _: [% I - 0 G8 w# n) j+ n. c; |- m3 q
- /**
% V' X3 b9 s& h( ?3 Y- h - * @author Administrator3 h) D2 E4 j) s( u
- *' |; l& _( A' u- W$ E1 ~
- */
9 O* F7 u0 G# ]+ [ @- c - @Controller // 标注控制层对象% @& I3 t0 F1 w8 z7 j( q: p ~
- public class BookInfoAction extends ActionSupport {# k9 M r. X8 s, s8 U. d8 D# f% g
& f6 [2 `0 q* P# W) z- private static final long serialVersionUID = 1L;
( f! h! m3 B7 R' @- N - " o5 O8 ^/ k6 C3 Q8 Q
- @Resource(name="bookInfoServiceImpl")
$ l- T! T3 n) H5 {: b! |: z - private BookInfoService bookInfoService;* l1 Y$ O$ ^: |' r. O3 @
-
" p2 q- A' V) Q7 V - private List<BookInfo> books;
5 Z2 T6 N/ X/ W; p$ m4 j - private PageBean pageBean;! w, [" A+ `7 f; n( p# e
- private BookInfo book;6 @8 m: o* A% i( _
-
# R' [9 _0 c/ _+ }2 \ - 7 |( ^0 A( ~% d, {
- /**% R3 t* _2 v$ L3 _7 \
- * @return the book [7 m/ ^$ f% y, p2 r6 N" U
- */1 j5 |, o. q, D7 C# ?
- public BookInfo getBook() { _. x! `4 Z3 ^' M
- return book;
2 \5 a2 ?8 H6 r: ^3 o5 ~- M - }
/ a! X6 x3 W+ I8 A9 S2 r: c - /**/ W2 F; N" [7 g
- * @param book the book to set
0 L2 M( E1 }6 _+ J% }2 l - */& Y& E, I. m7 N N
- public void setBook(BookInfo book) {) u) @& b2 {: l. J, j0 u8 q T; D
- this.book = book;& A. E0 ?+ Z4 I$ f
- }
, D- ^( X0 v4 g& Y
; x1 ^1 H- x9 B! ~& `- /**
5 A$ {# D$ V5 R. N* C- x& [ - * @return the pageBean& c! B' i% f/ N2 }. z, b
- */, ~( F) E/ X8 a9 r
- public PageBean getPageBean() {3 g' q) C0 M6 a. K) W! X
- return pageBean;
' |' n4 W8 Q2 ^ m - } f6 V; u9 N; o7 y1 E. N4 ~; @
- /**
& h. O# z V* m4 [- W' r- U0 } - * @param pageBean the pageBean to set, s9 P2 T7 A5 M& N, U4 t; I, A
- */
$ @0 V& c' u8 z9 p - public void setPageBean(PageBean pageBean) {
1 }% r# C; P' n: R% U2 C9 k - this.pageBean = pageBean;
1 a- F; H: p* ] - }' k! T* g$ Z, K' L
% Q6 }# p6 k( Q- /**- g; U. E& X5 f
- * @return the books5 g, K2 g" E2 P8 B& ^9 _5 l# t
- */
! B" U N t7 N0 }" P+ i" p - public List<BookInfo> getBooks() {) A5 r0 q- c2 A4 t; F
- return books;
' K+ u& e" C2 h" g - }
: q, G. F9 @; I* E5 V; v - 8 N/ a* H) J2 f! V
- /**. n- e% x; N/ D; y
- * @param books the books to set
6 p- M' A' |5 U: P7 w - */2 z* {7 Y5 G+ V9 x4 B) A
- public void setBooks(List<BookInfo> books) {
4 I! K# ]5 l4 k0 r. I7 ^ - this.books = books;! [9 P6 T: ~6 A0 Z' G
- }
8 L5 |0 ?* o5 O - 2 x! n! g4 P& r* a5 R
- public String showBookInfoList() {+ i8 Q. V) f# [% l! y8 g
- pageBean.setPageSize(5); [2 a: |4 ?, G$ a! o
- this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));
0 t/ ~' h& o, S& q! O+ d2 W - return SUCCESS;# V$ y" b; E, q1 Y. e8 I; j/ F
- }
- ~) u: J& b( W0 K( s( e" N& q - " ] Y; ]6 f# H1 Q4 `% R+ B0 b3 i8 `: f
- } `% O$ q+ }' T- k& X+ P8 }7 n0 h
复制代码 applicationContext-persistence.xml:
" z; _' X: z' g- A- P- <?xml version="1.0" encoding="UTF-8"?># b! c" y# }& E& K- q) K1 i2 a
- <beans xmlns="http://www.springframework.org/schema/beans"! `1 t& O) j" ^9 T3 P- y8 ?
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
: p, R: }* t% C - xmlns:context="http://www.springframework.org/schema/context"* Y" Y3 `) G& Q# j0 m3 C! O5 F ]
- xmlns:tx="http://www.springframework.org/schema/tx"9 F/ x- ]9 P$ T* I5 p- |5 F& Q0 Q
- xsi:schemaLocation="http://www.springframework.org/schema/beans , V: W1 h# E( m8 ^
- http://www.springframework.org/schema/beans/spring-beans.xsd & |, L" |. c0 z
- http://www.springframework.org/schema/context
8 o3 x! F& h0 J: L - http://www.springframework.org/schema/context/spring-context.xsd 4 ]/ } M) `; ~7 I8 `
- http://www.springframework.org/schema/tx 2 Z [) z+ K* \8 X3 }
- http://www.springframework.org/schema/tx/spring-tx.xsd">" j( C8 j E) ?! L
- <!-- 使用注解方式装配属性文件 -->. y" ~/ n& p- v. F+ e2 V* D Z
- <context:property-placeholder location="classpath:hibernate.template.properties" />0 N. n( O+ ~, {: w
- <!-- 配置数据源 -->
7 l, I7 l: @) ^& Z - <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">; y/ d- s C# a4 U. y3 |2 d
- <property name="driverClassName" value="${hibernate.connection.driver_class}" />* m# z8 Q# k5 [, M8 {1 t
- <property name="url" value="${hibernate.connection.url}" />
+ u, H, |2 Z- R4 K - <property name="username" value="${hibernate.connection.username}" />, ^' D& _; N2 [/ ?/ F2 i4 j/ `
- <property name="password" value="${hibernate.connection.password}" />- T1 x' |, N' m# } ^
- </bean>7 V& S# v( i0 g2 {0 L9 a
- / R, E4 H& J1 y! D! E
- <!-- 整合sessionFactory对象到spring容器进行管理 -->
8 E; @- v: v% J( R% v - <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">7 _; i$ n& p5 m0 Z8 Z( Z& o, n: G6 O
- <!-- 把spring容器中的数据源注入到dataSource属性中 -->* S3 t4 T. l5 `. N) n
- <property name="dataSource" ref="springDataSource" />2 S( P- k# y! F$ F4 f' v/ r( V
- <!-- 扫描装配需要管理的实体类 -->( P8 a& V! Z& {; m1 V
- <property name="packagesToScan">% j5 C6 o7 A1 J2 n* x- b6 q
- <list>
$ n' j$ W+ u# p7 ?' _" R$ U' W6 s% i - <value>com.s2sh.annotation.entity</value>
6 ^% o- a( T0 s: ? - </list>
3 P" H3 k1 }3 h# @, z* }$ R" ` - </property>7 I& l8 Q+ ]0 T- N8 m1 I
- <!-- 配置额外属性 -->
' ~. ^' u1 Q% }5 ~ H3 {" F. C+ M - <property name="hibernateProperties">; y! m* f+ P0 y) _
- <props>
s& j. T/ o* p7 J4 h - <prop key="hibernate.dialect">${hibernate.dialect}</prop>
3 m) a+ [; u) }) J& G! o - <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
& f0 m" @* O" V- G- A, n - <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
$ ]- _2 D2 i* e! {; w0 A - <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
& ^+ |) v9 Z% E4 a( M2 s. P - </props>: n6 J3 \5 W: n4 p
- </property>% v3 q' p1 Z: o1 M$ q
- </bean>
- _1 L! T: P5 m+ H6 F" C - 7 E7 |1 l# F( }& ~) ^0 U
- <!-- 配置事务管理器 -->
. v7 r6 K6 x! } - <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
1 p, u0 @0 b6 s- @% S, p - <property name="sessionFactory" ref="hibernateSessionFactory" />7 _. A8 f! g0 n i$ L/ ^- m( f
- </bean>
; j# x0 G- W* ?/ k! \ - # v6 \$ ~2 B8 A) v. ~) [
- <!-- 使用注解形式来管理事务 -->, A* a: Y, F! ?1 K
- <tx:annotation-driven transaction-manager="transactionManager"/>5 P* @: w3 ^3 }& e7 ^2 o2 g
- " d) B+ `& o4 N: K& N, w/ L
- <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->, X5 G% ]! V! {6 U# O* y
- <context:component-scan base-package="com.s2sh.annotation" />5 j) P# y. Q& v
- </beans>
复制代码 struts.xml:& {( f6 Y- \6 M8 j; ~
- <?xml version="1.0" encoding="UTF-8"?>/ `& f- z* g2 h9 v
- <!DOCTYPE struts PUBLIC
* T# W1 K: J% |/ T: T2 h$ d. ^, | - "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"& r6 H2 v+ v- B
- "http://struts.apache.org/dtds/struts-2.3.dtd">1 H/ r. w- c7 H4 R7 T) `
- <struts>
2 Y* u3 R' |1 M - <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->7 ^* o7 \0 q/ v0 X# @! r
- <constant name="struts.objectFactory" value="spring" />
5 }4 a9 q# ]: c o+ _' o+ J - 8 f& k) b( [0 h' ~
- <package name="base" extends="struts-default" namespace="/" abstract="true">3 k5 w5 \3 V; Q c- Y7 {# V! l
- " n& f3 ]8 y. H7 b5 y
- </package>
`- Z3 v) e( f+ {7 J, P1 z -
0 Q5 Y! T, h) B! _% o3 q - <include file="config/struts-bookInfo.xml" />
H' h8 Z( x9 P4 v- T! m - </struts>
复制代码 ; x& P2 z8 G6 `
S2SH三大框架采用注释整合项目案例
" v2 A. v2 C8 \解压码:
& A$ [8 k( j4 f6 r. m( W% B# @+ F Z7 s4 @
# W8 A5 F0 ]' R3 {# Z6 A" `. Y7 p" K' ?1 D& c
|
-
总评分: 帮币 + 1
查看全部评分
|