TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。
- t5 o. w3 m- U$ O1 R* n; D7 T" f6 W8 S
BookInfoAction.java:9 g% G) d5 K) S
- /**. h, T& |% Z% \4 q, ~( u* p
- * / _) J& S5 W1 v$ w# l( D
- */2 ^2 \( y9 f- E+ U, N
- package com.s2sh.annotation.book.action;, ?! D0 @! P* t3 r+ p
- import java.util.List;
) H* U" r1 J) |# v3 _! l9 q - import javax.annotation.Resource;& _- t* f: N/ m8 @3 n
- import org.springframework.stereotype.Controller;
. D+ f: C$ R5 s) n$ @ - import com.opensymphony.xwork2.ActionSupport;
1 e$ W* G$ X% ^( A# G - import com.s2sh.annotation.book.service.BookInfoService;* ?3 ], y# g6 z, A0 q, i
- import com.s2sh.annotation.entity.BookInfo;
' e7 n+ o$ e4 e - import com.s2sh.annotation.entity.PageBean;
5 H& \$ x( p: u6 b/ `
# \( H! R, J" \ `& h. @6 N- /** P; S& x! _3 I. e0 Z! T# l
- * @author Administrator
6 i3 _8 c: w9 t$ w4 o: L1 m# a+ @9 f - *
0 c8 a9 ~( L: w - */
+ M- z+ n/ h! h: z+ F3 A! c6 P - @Controller // 标注控制层对象8 L7 ^ _+ i/ V+ |1 r4 l
- public class BookInfoAction extends ActionSupport {5 V0 c7 p5 q; n: F# ~5 m
- ( q3 f; J/ Z- I* G. h
- private static final long serialVersionUID = 1L;
0 ?) d8 j8 E4 N3 m2 K6 ~9 i/ `% a - 2 y1 [* m* l' G# F, H
- @Resource(name="bookInfoServiceImpl")2 @. Z; ~; s/ `# h9 V4 `+ T8 g5 _
- private BookInfoService bookInfoService;
& u2 J6 Y- m5 ]7 I) c I - . V9 C1 ?! M1 {2 S
- private List<BookInfo> books;
' H/ g, y) A- Y/ |& }+ {( p& | - private PageBean pageBean;- f- {" E3 o6 Z1 n4 U5 \ X
- private BookInfo book;% p& g' L" {3 W/ k0 O
- . K _3 v' y; [6 `6 J
-
" w, D: q4 b p# j1 Q- U" O3 |: G - /**& ]2 n4 ?3 Y! j, a0 r2 g
- * @return the book0 ?5 \* Z6 ?6 a$ H( j
- */
, g; l- G+ O" c+ @/ Y: b! O - public BookInfo getBook() {9 d! O' O. V2 R
- return book;, ]( r9 V8 y" p- o+ S
- }% H; ~+ d& g% [ h4 r
- /**( v z5 Y& |, i5 ^3 B
- * @param book the book to set+ o- a" d4 v+ R) w1 r
- */7 I5 v, R( D4 |( w
- public void setBook(BookInfo book) {. @" }7 i% \1 C! @
- this.book = book;2 }% ]/ i" y4 r1 j% j
- }
: U J; o! W; @) {" H! L - 3 j/ |1 \8 J& y. t
- /**
/ d0 S Z6 G% m ]- h& h - * @return the pageBean V$ s; U* a# N: \( u& V& K
- */
; ]6 k+ u2 X9 |: p/ i) z - public PageBean getPageBean() {
7 d1 K4 G( I7 F - return pageBean;
# O/ x+ E2 h( t8 D: P! p8 G - }
" z _8 y5 v- V. K3 S - /**+ g, m, @3 {/ b( B4 v! q
- * @param pageBean the pageBean to set
# G" Z) l3 t5 E( m( K7 C* b ? - */
+ ?7 w- S' h% ^$ k1 k. D4 Q - public void setPageBean(PageBean pageBean) {5 \2 U& \7 ^2 y3 S1 i6 V
- this.pageBean = pageBean;5 E. U3 H R# j/ h. T) N6 m
- }
/ ]8 o2 m( l& u, A - / a7 B! |5 t7 W0 |
- /**
9 f0 |1 N7 u, e4 R - * @return the books
+ Q$ M) @$ g3 M* l2 _ - */* j# |, I7 @1 @3 F$ U
- public List<BookInfo> getBooks() {
s* I' U' _( U# j) ^+ G - return books;4 {6 c$ `# r; F4 E/ l
- }
4 c2 T: l: x/ m; P. \ - ( I( V$ |1 I) l- v
- /**
9 d. \" R# C$ j; I! r - * @param books the books to set2 _, x) Y5 N) G6 Y6 N @& @
- */- F9 V7 @. N% u" I
- public void setBooks(List<BookInfo> books) {$ ?/ u0 o! V7 F- a0 l6 K
- this.books = books;
/ }) z% \4 x: ~6 b# i - }/ A# V& }! {0 V& S: ~
- " S% \5 X1 v5 m/ i
- public String showBookInfoList() {
) e) g! ^, g M5 w( c8 w - pageBean.setPageSize(5);# s8 C+ W" w0 j
- this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));
* N2 ], S. [% b - return SUCCESS;/ l# G% m- D0 ~7 @
- }0 F) M9 ?1 t p: x1 t
6 g: D$ g0 f6 ^7 R" `: l- }6 b) z4 Y8 ~. \
复制代码 applicationContext-persistence.xml:6 _3 ]: T: }# o
- <?xml version="1.0" encoding="UTF-8"?> `2 @+ O2 F* M4 T1 d
- <beans xmlns="http://www.springframework.org/schema/beans": T% V1 J z' |. G7 Y
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
" h+ E- R6 B+ N0 u/ q - xmlns:context="http://www.springframework.org/schema/context"
- x5 K2 \8 ?1 O4 n0 B8 O8 i - xmlns:tx="http://www.springframework.org/schema/tx"" |7 F/ q4 O8 a4 M7 @4 {; S% v- C$ d
- xsi:schemaLocation="http://www.springframework.org/schema/beans + S0 d& P* z6 A) ~. }) q
- http://www.springframework.org/schema/beans/spring-beans.xsd . n p" S- G; Q- D
- http://www.springframework.org/schema/context 4 n) V* b. Z7 N4 J; U* ]% ~
- http://www.springframework.org/schema/context/spring-context.xsd
! k$ p, B( e3 J" p: n e, D - http://www.springframework.org/schema/tx
& @+ ~" ~2 L" S9 x$ T0 M - http://www.springframework.org/schema/tx/spring-tx.xsd">
: ]) }; l5 f7 K2 ?. B* f - <!-- 使用注解方式装配属性文件 -->* H$ U! J1 l& O {8 W; r1 d
- <context:property-placeholder location="classpath:hibernate.template.properties" />9 n4 z4 s+ u' c; S) Q$ f
- <!-- 配置数据源 -->
& b. ^4 p, z4 B' p - <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
$ p; ~; o$ K+ }" V- [# I! H3 f - <property name="driverClassName" value="${hibernate.connection.driver_class}" />' @- s. I& w' b n5 I8 e" |
- <property name="url" value="${hibernate.connection.url}" />7 `5 L+ h: r5 l2 h! G4 t9 `1 f: ?/ J1 {
- <property name="username" value="${hibernate.connection.username}" />. {( y% N. Y* a% \1 L; F( _
- <property name="password" value="${hibernate.connection.password}" />& W7 E) r, }( K c Q# i5 Y
- </bean>
. W/ j! K, X" b/ v/ M -
& N% `5 d5 d h4 _0 u - <!-- 整合sessionFactory对象到spring容器进行管理 -->
0 b5 T1 ]5 S! o) h* _ - <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
: Z6 @2 P z0 v! r( q - <!-- 把spring容器中的数据源注入到dataSource属性中 -->3 g8 @; x8 K4 E' w1 h
- <property name="dataSource" ref="springDataSource" />
3 E3 P4 x" G' N% T - <!-- 扫描装配需要管理的实体类 -->
% }) E* Z. `/ X - <property name="packagesToScan">$ ~3 t" b# c* A* ]5 `
- <list>
* E7 j) ^ @/ A: q' _# ` - <value>com.s2sh.annotation.entity</value>% P9 Y1 F4 C+ U+ K2 s
- </list>' A' \& M/ ~& A$ @' M, Q3 q
- </property>
8 L1 [1 W: b2 k7 w/ [! T. X - <!-- 配置额外属性 -->0 Z3 o+ e7 a) b) M8 \5 q
- <property name="hibernateProperties">; [* {+ I8 ?& c- B: [
- <props>
$ E+ Y8 W; J+ a( ~7 _7 c - <prop key="hibernate.dialect">${hibernate.dialect}</prop>; Z% l# |5 K! W r& t" d; i
- <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
) g. f1 u+ _. C - <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
; p$ C" ^ M8 d F2 b$ H/ M - <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
% E1 _$ b3 s4 J8 c+ U! {5 y2 Q - </props>
* ?+ m! K' e7 p - </property>: f2 i" S9 j) Y g6 c; H
- </bean>5 F$ D" V8 c2 n, t- p0 v5 U
-
6 ]+ u6 f! q6 K% j2 V4 q4 } - <!-- 配置事务管理器 -->
& ~( y; o1 S7 |+ C! i0 z - <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
6 a% z. p' S c0 A8 B5 ^ - <property name="sessionFactory" ref="hibernateSessionFactory" />
4 ?2 d5 ? o) o: ` - </bean>, w% s1 m% c: B
- 3 A' P1 Z ~$ @3 \) y
- <!-- 使用注解形式来管理事务 -->" l) |- b5 |* j' E: G9 K/ e
- <tx:annotation-driven transaction-manager="transactionManager"/>9 I% l$ ]+ n; z3 A1 A( ~1 M
- & A5 L3 M7 s' t H) }* V6 e
- <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->
% Y' C( ?4 @9 V# y - <context:component-scan base-package="com.s2sh.annotation" />8 h4 J- [' b! x" Q5 D; }/ }0 V+ d- K
- </beans>
复制代码 struts.xml:
0 V6 j* H0 Q) A" y- <?xml version="1.0" encoding="UTF-8"?>7 U2 ~" A7 ]9 q8 F) {; m7 `
- <!DOCTYPE struts PUBLIC
$ s0 C `6 b% ?- _6 O, f- E6 U! y7 f - "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"6 _0 G0 h' d( y4 h4 b5 g
- "http://struts.apache.org/dtds/struts-2.3.dtd">
( f t2 Q1 Q: j- v! P' T - <struts>
/ Y* y0 X3 @) G( I* r7 L/ ^ - <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->
3 Z" i8 W( q, N" y c ? - <constant name="struts.objectFactory" value="spring" />" T0 {- Y+ F* ~8 k2 f; X- y0 t
-
8 _0 e$ F. z0 }' R - <package name="base" extends="struts-default" namespace="/" abstract="true">, J; c* z5 ~9 C+ H% {) q4 P4 R/ x
- 4 I' \) u3 Q: z; G. x6 Z5 e
- </package>
0 l5 w0 }: T/ |$ O% G - 1 e& g7 ?% }0 N! u, q t: F
- <include file="config/struts-bookInfo.xml" />
5 ]: S# ^" {4 b6 \; r - </struts>
复制代码 0 z# Q2 g( h- u/ a" _1 W
S2SH三大框架采用注释整合项目案例& O, c9 p5 c3 E: ?! y
解压码:
6 ^% B E0 T& z2 V o
W2 z, W' T8 i
: w- b& \. c# N
: J) b1 J# E" @$ f6 C, U |
-
总评分: 帮币 + 1
查看全部评分
|