TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。
0 C5 f, q6 M& y: {& p- W# x0 ]* r5 h3 x6 I8 ^/ x3 P; c5 C6 k, z
BookInfoAction.java:
' \, ~" ~( W6 l- /**/ ]6 ^7 [( r, U7 i
- * - t- w& D; F4 u6 \
- */4 J& }# {/ n3 \1 |! e
- package com.s2sh.annotation.book.action;) z0 B( i; W) V# v
- import java.util.List;' y o- F [# M4 A9 J
- import javax.annotation.Resource;
1 E& r9 S* j# @4 j% Z3 |4 a4 L2 ^ - import org.springframework.stereotype.Controller;7 D8 r' E6 W9 l. Q. K$ _2 g
- import com.opensymphony.xwork2.ActionSupport;. p! i5 \. o8 s6 W
- import com.s2sh.annotation.book.service.BookInfoService;
+ M8 g9 Z* O- { - import com.s2sh.annotation.entity.BookInfo;
: b4 E7 U5 d+ {2 h% G7 o - import com.s2sh.annotation.entity.PageBean;/ h) B1 k) u0 N4 u
$ |2 ~- V: F1 f& I8 p- /**
3 k& W8 S, a/ ], L* g/ S - * @author Administrator
! z1 J0 ?) E3 r1 h - *
' g' n" Q4 @9 {' _! q( I - */6 n. i( V% r1 r1 a
- @Controller // 标注控制层对象6 T, M8 j7 ]( |3 ^' ^) r$ Z( g
- public class BookInfoAction extends ActionSupport {
+ l( W! K* s( i3 Q - / C1 K9 z! j% V
- private static final long serialVersionUID = 1L;
) D, I' R- t' a5 _7 ^ - ?, A: |2 W8 p- i
- @Resource(name="bookInfoServiceImpl")9 v7 }( e9 Z* n2 @7 g/ U
- private BookInfoService bookInfoService;3 u9 I. s7 U+ H. D& Z$ m+ ~# W+ C3 {) O
-
/ G" c) Y. |/ N2 K1 k: S6 g0 e - private List<BookInfo> books;+ ^7 f3 l. s1 {# R$ q- O' n
- private PageBean pageBean; h) B: K& _+ r, ~& F; W, @* r
- private BookInfo book;
+ x6 C# q; v( T - 6 R8 `4 z1 h$ m9 j/ o" y6 G, I" N
-
2 I4 I1 b7 b6 Q# W% O - /**& g5 {4 A: g7 g$ S# [
- * @return the book1 O7 j; l1 m0 k6 I: m; T# }
- */8 A/ N- X8 w( z4 i5 y2 V
- public BookInfo getBook() {
+ w& Y3 M' e! O* c! } - return book;
% ~4 c. Q4 J1 g$ |4 M1 u - }
$ ]$ r4 R4 U) \ P( {: | - /**9 s7 P8 r* R0 V. ~
- * @param book the book to set
# l( }) Q# h# z7 x Q - */" M2 s* Y: y6 [" V' ?- p9 Y# L
- public void setBook(BookInfo book) {* }2 ^4 E8 \0 a# f* Z- c5 ^3 [4 j
- this.book = book;) e$ v1 [& G' K3 a
- }
4 o: y% P3 k1 N* G: B6 c7 S! ]' U
3 L$ B! w+ q# A! o1 m- /**8 e4 J$ i% h1 f
- * @return the pageBean
6 E% Q( J- t2 Q; D+ R" I0 R - */
9 W* ?. D9 @% F- g! q3 a; } - public PageBean getPageBean() {) H3 F2 U2 X/ ?1 k) H- Q
- return pageBean;
3 j8 }( Z8 k4 U: f2 V: w - }$ g# g. C' r5 o
- /**
4 k: E& N5 M1 }& n+ n% N - * @param pageBean the pageBean to set
* |+ u; @! K" n% C- q$ s - */
9 t; x! V/ T, i1 g - public void setPageBean(PageBean pageBean) {
5 ?+ d: a8 ~2 W8 u7 a - this.pageBean = pageBean;6 E1 ?5 n& f8 p. u* A( Y; @
- }
5 ^. {. q1 ?. y2 B/ I. a7 D - : N, s5 P4 K% a- T; N% O: T& t
- /**7 r6 |5 o8 F* {4 C' z
- * @return the books
/ N1 v4 b' r1 _% m7 u) i - */" {+ F8 \' u) W* l
- public List<BookInfo> getBooks() {: L% o. [- v4 a9 P
- return books;6 o8 x6 ^# U( b* P1 U
- }1 k) @- k2 x5 ?" K* M
- 7 {) H, A0 X- Z: D: w: k
- /**
( T8 U8 z. S$ G. n# d - * @param books the books to set
$ A9 I) y6 d9 B - */! Z w5 ~# {; W& q
- public void setBooks(List<BookInfo> books) {
- ^, n: t4 n4 T" K7 ^! ]2 o4 u - this.books = books;
( y2 X+ m6 R* w. s' E( L - }
, _4 T# a ~) g+ A& u; o - 1 N( f) k7 r% u" l1 x
- public String showBookInfoList() {
5 j+ w4 ?) r0 t& n6 H0 j" ^) C - pageBean.setPageSize(5);) R! t8 v2 w; K; H# c$ N4 Q
- this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));1 n3 F% r8 W" `6 ?
- return SUCCESS;
& \( [. M B1 K$ O& U! i - }8 M& ~+ C$ ?7 t1 {7 A% o
6 v4 D8 y7 G' Q' f: G" {$ }- }+ @3 t( m6 u2 P" s+ a9 w* E
复制代码 applicationContext-persistence.xml:& v2 }; f3 q9 ~0 s3 x' b# P
- <?xml version="1.0" encoding="UTF-8"?>
" Z2 C9 U" Y/ p( ?; V5 d- E - <beans xmlns="http://www.springframework.org/schema/beans"
" x7 B+ d$ W4 p7 R: s8 s$ L/ i - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
) s7 F9 W" I! y$ I3 E; v/ K% a - xmlns:context="http://www.springframework.org/schema/context"
6 a6 N2 ]' @6 j$ `3 I5 y7 N! H - xmlns:tx="http://www.springframework.org/schema/tx"1 g3 ?, I8 a$ E! @4 t& L6 P2 {
- xsi:schemaLocation="http://www.springframework.org/schema/beans
" v+ Y5 }& ~+ G4 j. @+ o7 X - http://www.springframework.org/schema/beans/spring-beans.xsd
; H* c1 \: }" I, j$ V - http://www.springframework.org/schema/context
6 D* d# [' |( D - http://www.springframework.org/schema/context/spring-context.xsd # ]4 W- X# v6 e
- http://www.springframework.org/schema/tx + ?' L4 Q% a0 Y: {2 J* b
- http://www.springframework.org/schema/tx/spring-tx.xsd">, K2 |9 w! U, j
- <!-- 使用注解方式装配属性文件 -->
; }7 U4 ^7 s" y9 O8 i6 ]5 D, H: d - <context:property-placeholder location="classpath:hibernate.template.properties" />
) k. @$ E+ O/ c3 I+ v$ Q - <!-- 配置数据源 -->
2 j0 M; }8 c' C" e9 W- U - <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
7 [8 U9 m- o& j4 v4 U8 R s - <property name="driverClassName" value="${hibernate.connection.driver_class}" />
: O ~. v& G% [2 ? S Q, t - <property name="url" value="${hibernate.connection.url}" />4 k. b- x9 @* s+ k4 U) P. ~+ E
- <property name="username" value="${hibernate.connection.username}" />
' V8 m' J. b; m6 L9 f) c# G* b8 ? - <property name="password" value="${hibernate.connection.password}" />
$ E* c2 a S9 _6 }. {5 y) X: A - </bean>* `; X" y( H5 z* X% P/ s2 N$ e
- # S3 j9 z: }- ~" y; }" W
- <!-- 整合sessionFactory对象到spring容器进行管理 -->
( [- d1 A# I7 S9 [ - <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
; Z; U% T8 q8 M. @ @6 W8 w - <!-- 把spring容器中的数据源注入到dataSource属性中 -->
c" C% b* {7 x2 @2 Y - <property name="dataSource" ref="springDataSource" />
: Z8 D. J3 v& q9 p& C. i( L' A - <!-- 扫描装配需要管理的实体类 -->+ i7 T0 A( f9 n' d. o. m, Q
- <property name="packagesToScan">% g0 M2 L* S( z7 ?6 W; N; u
- <list>
6 D- {( K& m4 l/ a - <value>com.s2sh.annotation.entity</value> ?, d/ X0 y/ Y% b' x3 m" d
- </list>
4 v5 \4 W) |7 G. Z - </property>" B/ @) ^6 P5 S: ~
- <!-- 配置额外属性 -->
# v' Z# E* p4 v9 _* n7 M - <property name="hibernateProperties">
- W; m; `! t- }# O) z - <props>
4 \" F7 d: N- ^1 w - <prop key="hibernate.dialect">${hibernate.dialect}</prop>
9 H: j! c7 E+ x$ L/ C# U5 H/ ^ - <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>5 ]+ m& ^; W" A/ F% M9 Z
- <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
' s7 Z! x3 l$ V0 h+ Z3 Y1 s - <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>) b' C& W3 h$ L4 U; {- a
- </props>' Y8 \: ], J+ z
- </property>
) q8 q: d: u# E. ^5 _: t - </bean>! p9 G( i$ F3 _6 \
- + [1 z5 b: t# ^* o# j( \
- <!-- 配置事务管理器 -->
2 R! M1 I: d2 L6 U4 q8 B - <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
( @* B$ c6 G; G/ m% N - <property name="sessionFactory" ref="hibernateSessionFactory" />- x- h" t8 i9 i2 M/ t* a
- </bean>$ k6 f4 l' ]+ ]
-
2 z7 a: m4 O) {+ L4 D - <!-- 使用注解形式来管理事务 -->
+ Y0 X0 v$ p9 i m0 h6 l% F - <tx:annotation-driven transaction-manager="transactionManager"/>' J! @' K8 ~* c) f5 i3 J- q
- $ C6 C6 v C; m' c
- <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->
( f6 c6 O" {7 f* S; r - <context:component-scan base-package="com.s2sh.annotation" />, V9 K ]5 ?5 Z# i, f4 \
- </beans>
复制代码 struts.xml:3 y5 ^/ j: g6 W6 b) ~+ g) w! D
- <?xml version="1.0" encoding="UTF-8"?>/ j! F' @) H8 i7 `( O
- <!DOCTYPE struts PUBLIC9 q |; P; \+ n1 N4 M) Y+ U X% a
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
& K* Y9 }% G/ o) y6 k, | - "http://struts.apache.org/dtds/struts-2.3.dtd">
9 Y3 R: f" ?9 L: T4 _. z( l - <struts>+ p" n! \: @7 S
- <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->. k" e! Q2 F) K$ |+ V' f3 ~" {
- <constant name="struts.objectFactory" value="spring" />. T- r) U) i; H) w2 g* r3 a
- " r% v- O$ `0 Z" E6 Y, e
- <package name="base" extends="struts-default" namespace="/" abstract="true">
8 [: Q5 `$ D3 H/ }! ~* U' M1 ~- ^ -
* l2 `. g9 x' a: l: m9 N - </package>) c" J" \2 Q. r+ h v9 T! m: x
- g: {( ~& l& Y8 W: v W
- <include file="config/struts-bookInfo.xml" />
& {8 o/ U: ~8 w$ r* p# S - </struts>
复制代码 1 s8 r2 m s0 m% l% r
S2SH三大框架采用注释整合项目案例% o6 ]+ Z$ G4 i" G. f& C' x
解压码:: X! O' `% Q+ |& V
/ f+ F( d+ ~$ S4 v2 @1 a
$ Y, S4 M3 W Q# y% b T4 _: [
% x' }+ g/ U! d) X2 e8 _. }0 L |
-
总评分: 帮币 + 1
查看全部评分
|