TA的每日心情![](source/plugin/dsu_paulsign/img/emot/shuai.gif) | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。
7 g+ z) V; g: G+ Y9 L t @
; U: S4 T+ U/ A9 {9 k3 k4 C1 pBookInfoAction.java:
; t6 P+ o# v j/ u' ]2 \- /**1 ^ C: r9 e X, B4 w" ~, f8 p
- *
6 j) t% \% w }) r3 c5 | - */
% Z% e$ Y# @( [5 X: K. ?8 v2 H9 t - package com.s2sh.annotation.book.action;
% x. ]7 k# R: ^: y/ a - import java.util.List;; m3 c4 S0 k" E' O7 j0 C2 x9 v4 p
- import javax.annotation.Resource;
$ X8 r5 |3 b; S! N4 X8 c$ Z - import org.springframework.stereotype.Controller;
: z1 F* }- b$ Z& n5 y2 E - import com.opensymphony.xwork2.ActionSupport;
" I* Z1 ~+ }# Z4 j6 Y - import com.s2sh.annotation.book.service.BookInfoService;
6 J6 }; l9 ?# ?3 g5 Z- [' Q - import com.s2sh.annotation.entity.BookInfo;' {3 f# d. f% M- p7 Q* T
- import com.s2sh.annotation.entity.PageBean;" U, p* z5 }6 T9 h. P+ \
% ?! `/ O- y4 s9 S1 y2 M, O4 T- /**
. {% V8 P' T) u \ - * @author Administrator# f! k$ r& p k
- *
2 X3 F+ R7 `- M; U r1 M! o - */1 V! x9 K. ^( T8 _% l- j! c
- @Controller // 标注控制层对象
3 x0 l+ o/ R! H9 r - public class BookInfoAction extends ActionSupport {* q7 y- r# ? \; |! `. k
, ^( a @* @' N$ v, U- private static final long serialVersionUID = 1L;
, }5 w% e' m$ k* s8 r w, c -
+ @, i7 X7 y5 m- H# V) f - @Resource(name="bookInfoServiceImpl")
& y1 d0 g8 f$ e, L) J - private BookInfoService bookInfoService;
2 Z3 z) R% x% J6 ?/ j5 o - : j0 |3 P4 q' h2 o
- private List<BookInfo> books;# B& w4 d! {5 [& M. F1 q
- private PageBean pageBean;
W. K! M. t1 @# O: L4 Y; l4 ?3 S - private BookInfo book;
, b0 Z# {) Z& Y2 F' R+ z: a - . d0 o. K1 r, V0 p B
- * \. a7 T" b, C
- /**; Y2 ]' I2 A! [$ E8 y) |. ~- k1 ]
- * @return the book4 H( v* c+ g5 ~! Q1 t
- */
+ ~7 H- g3 {; q) [ - public BookInfo getBook() {: [- B2 o# u* K4 o( f
- return book;
0 [) ]0 ]7 N) ^3 h - }
: A+ A9 u* x- B - /**
" j- A! c2 A+ b$ ^$ y* x# \8 F - * @param book the book to set8 e. U9 J o' k9 r! x
- */. N1 H, J: W* W# ]$ f
- public void setBook(BookInfo book) {
. o9 m8 \2 c( c: t* e3 j - this.book = book; \: n5 _& W% K
- }
2 ~. W' H: B1 L0 ~, g
( x) Q5 |' @& z! j6 S& M, b) U2 T- /**+ Q4 u2 f+ {4 V, j
- * @return the pageBean
8 U1 @5 [1 {% |8 y$ | - */
. D& F8 ] y" s$ M0 O$ w - public PageBean getPageBean() {
n- f" M: e8 Q0 \ - return pageBean;
; @2 {$ Y q% k- h! z! @6 q# `( a9 z - }. F, u3 K8 c* {
- /**
+ R1 i, v1 x* P4 @& M3 L" L - * @param pageBean the pageBean to set
" m8 W( c- G% h4 `0 h - */' D3 L- j7 c) v7 S
- public void setPageBean(PageBean pageBean) {
( x5 Z, ~2 d. t3 F4 V0 k# d: K2 z+ n - this.pageBean = pageBean;# t! u! ]/ H$ p: J" R
- }
- i8 f; g) C6 l S: K+ | - / H* x, N: a9 z* N8 J
- /**
0 l/ j# y; d8 v$ | - * @return the books
& x7 z! e8 B% N# p1 F: U9 O - */
2 t+ z5 U0 G9 E- t& @ - public List<BookInfo> getBooks() {$ E5 U2 V* I+ ]- \/ D% z: N
- return books;$ t' p5 O! @8 S. g! K
- }
* a* g- K; I* J$ X% ?+ M, P - 5 ^2 u3 W" D6 B
- /**
6 ?/ y; ]1 g0 ~1 t. B - * @param books the books to set. K- D( A2 F) _
- */
4 G' q# X p" S - public void setBooks(List<BookInfo> books) {
9 u7 r, z9 }9 D% \3 X( y7 L - this.books = books;6 {! o. h/ |, u, ]' T8 g5 P P
- }
% [( `- e1 k7 v; v% }' m0 K! [
& q! z/ g" L" y2 W7 S$ ~: P5 d- public String showBookInfoList() {
& E3 j: s7 o2 f& Z+ U - pageBean.setPageSize(5);
8 D- c# K0 \! b9 o" m! n* a: f - this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));+ Z q3 l8 H" V7 \: g4 J5 h4 M+ E
- return SUCCESS;) P* V& z( U; A! T, h
- }
3 c: S: g* {( W- l5 Z+ H# Z4 L - - Y0 r; t( Q! B3 _) R" j
- }! i& Z# ?) V7 A y; @
复制代码 applicationContext-persistence.xml:
/ A. j, i% k8 N& v6 l& |- <?xml version="1.0" encoding="UTF-8"?>
$ f m" p* Y. V% E- F - <beans xmlns="http://www.springframework.org/schema/beans"8 Q9 R0 W( A' Q( w. U) w
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
, M3 v( \+ ~4 H+ R# z5 q - xmlns:context="http://www.springframework.org/schema/context"* G* F! p5 @% C) Q0 F0 c" G
- xmlns:tx="http://www.springframework.org/schema/tx"$ u* W% X, P0 d
- xsi:schemaLocation="http://www.springframework.org/schema/beans ! `0 b$ Y& B; H; X( E1 ?1 Z
- http://www.springframework.org/schema/beans/spring-beans.xsd
8 K- I! O/ r: [/ a* O - http://www.springframework.org/schema/context * T; ]1 a8 O1 M
- http://www.springframework.org/schema/context/spring-context.xsd
% ?& ]) X6 i! H' \ - http://www.springframework.org/schema/tx % l, S- i7 w6 Z
- http://www.springframework.org/schema/tx/spring-tx.xsd">
! ]4 s+ x; K$ u4 @: X$ j% C1 h2 o - <!-- 使用注解方式装配属性文件 -->- F2 g9 Z; [7 Q" j" K7 @
- <context:property-placeholder location="classpath:hibernate.template.properties" />
8 w5 ?/ E4 E7 K; W# S. `& R( {' x - <!-- 配置数据源 -->" n; q& R$ z% g1 m
- <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
2 f5 @1 I# ~2 w - <property name="driverClassName" value="${hibernate.connection.driver_class}" />
0 Q+ g3 {5 k& {5 q' D1 q - <property name="url" value="${hibernate.connection.url}" />
3 i2 Y2 i" l B - <property name="username" value="${hibernate.connection.username}" />
4 |: O- b8 v0 w* D - <property name="password" value="${hibernate.connection.password}" />
# Y; R7 t1 k1 Z1 { - </bean>. ~2 M% C$ k. K8 _8 l6 K
- % z5 {$ A' Y/ L* S3 B9 Z
- <!-- 整合sessionFactory对象到spring容器进行管理 -->5 s; q4 `# g* ~8 Y4 Q
- <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
! w- C# N) x* I. J, O0 u7 a - <!-- 把spring容器中的数据源注入到dataSource属性中 -->, s% W1 Q- o x. {' \& }; e B" A1 D
- <property name="dataSource" ref="springDataSource" />
; r- z* m6 F% _( Y - <!-- 扫描装配需要管理的实体类 -->7 v8 Y- J! B7 u% h9 y/ ]2 P1 J
- <property name="packagesToScan">
1 P- L3 z0 w) M& L! A+ V$ p - <list>
8 I, U' E# P; i - <value>com.s2sh.annotation.entity</value>
* E) T$ }4 \$ |& { - </list>
, V- e6 u+ n7 f& \) t - </property>6 j0 S E: I! i6 s2 m9 w5 v$ w, K
- <!-- 配置额外属性 -->' V% Q7 V0 `) F
- <property name="hibernateProperties">9 I3 t# x }3 e5 J
- <props>1 ]$ d- d- O& Q R) I
- <prop key="hibernate.dialect">${hibernate.dialect}</prop>
8 v/ k+ d+ k& I$ W% A5 _ - <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>7 H9 U/ b/ D! S9 B
- <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>3 d. S- A) U1 i0 A
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>0 c6 Q4 B/ r/ e3 S5 m; A7 ?
- </props>
* j' u$ Y7 `% e8 e5 M" G3 F; ~% j& A - </property>
. t# j: F5 |% a$ g9 I! k7 {8 X( N - </bean>
( G0 n! d' N' ^: p& v$ [( m - $ w$ n! }/ J0 ~) Y
- <!-- 配置事务管理器 -->+ i* a% N- D/ e8 g
- <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">' ~; m4 d$ q/ V4 v, x
- <property name="sessionFactory" ref="hibernateSessionFactory" />! ~1 q) |% M' K1 x2 g b! f2 z
- </bean>
* [' Q7 g! d5 z. C# h9 q -
8 _/ ^. B2 K, ~% P7 P3 ]4 b4 z - <!-- 使用注解形式来管理事务 -->
: U0 x7 N- o- {/ S* w# I - <tx:annotation-driven transaction-manager="transactionManager"/>
6 V) ]& k/ \7 K -
/ D: ]9 C r# }" ^. P4 \& E( K - <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->
" F# |4 t" b8 l - <context:component-scan base-package="com.s2sh.annotation" />! M$ K Z9 i% L% d6 ?* N
- </beans>
复制代码 struts.xml:- _% b/ k; H4 H$ s2 V- e( U
- <?xml version="1.0" encoding="UTF-8"?>
/ y! M5 u8 |8 ]; a/ Z - <!DOCTYPE struts PUBLIC
7 i( |1 M' b# h6 p9 F" u4 r" N! j - "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
. z! J* b0 ]6 w. d | - "http://struts.apache.org/dtds/struts-2.3.dtd">
' Z' L& ?: g& S" h6 w - <struts>
; K! e1 r3 u Y5 b! M3 q, c2 Q - <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->
4 m# _" R* t* [2 G; y - <constant name="struts.objectFactory" value="spring" />, ]" J- k; i5 v
- * @, e8 d5 V t9 A
- <package name="base" extends="struts-default" namespace="/" abstract="true">
# w3 P1 L# I) k -
" N4 R/ t4 }, }4 `0 J# @$ O - </package>
+ m+ `# s2 G+ l; G9 ] -
( {8 J" V, T; w# _* a; I) s - <include file="config/struts-bookInfo.xml" />! G: M' J& T+ {1 j9 ~( |
- </struts>
复制代码
6 C4 X- x9 z* V+ A+ aS2SH三大框架采用注释整合项目案例2 c4 z' i& d7 p; F! C; S
解压码:2 ]5 q$ A+ [3 D5 Z3 J
. q* i+ o1 h3 c0 ?# p! [
$ U+ R; q6 J! I- H! A1 l' t6 Q; o9 k9 D- x, n% W. N3 t
|
-
总评分: 帮币 + 1
查看全部评分
|