TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。
; |7 s4 B \+ W1 ?/ U$ U. g
& i0 Q: s0 B+ D1 I* d4 U0 jBookInfoAction.java:
. `) Y1 e' ^. D- g- /**
% {* d: W2 F& I$ _0 B4 i+ S - *
' ]3 Z9 C& ~" d - */
; u$ u: P) I* S8 Y5 _ - package com.s2sh.annotation.book.action;
- |1 k0 K7 f4 d - import java.util.List;3 I7 N8 \; S( r1 I0 U5 g' F5 E6 {; ]' G& t
- import javax.annotation.Resource;; d2 T' N1 d" P# A
- import org.springframework.stereotype.Controller;) L: i8 ~6 v0 I
- import com.opensymphony.xwork2.ActionSupport;
' b0 z+ U8 t/ y& I' o/ \ - import com.s2sh.annotation.book.service.BookInfoService; S- f B0 N8 ^% v2 \
- import com.s2sh.annotation.entity.BookInfo;
4 H# n- X# ]: a8 C+ D - import com.s2sh.annotation.entity.PageBean;
3 c- ?, r, b! e4 r! d - - S j* \$ A' B) O1 N# y
- /**
* ]4 q1 X5 C% L- h - * @author Administrator
5 T/ U% ^$ }: u. `1 C/ c - *
- Z' y. C1 z: Z3 X" m - */5 Z) d7 g {; b4 s
- @Controller // 标注控制层对象5 m9 F8 W# d: A! z2 r) m9 F3 P3 j$ u
- public class BookInfoAction extends ActionSupport {2 I) Y6 r9 }4 i0 R
: `, m/ [# ]$ w) l- O- private static final long serialVersionUID = 1L;, P6 n( w" O% C
-
) ^" K0 B4 D& b8 F0 F - @Resource(name="bookInfoServiceImpl")
- f( [% F/ [% k& p0 | - private BookInfoService bookInfoService;9 Y V8 `2 v$ B7 C) u8 V/ H
-
4 z- b3 `" e6 Z% h# F- _( l6 ]2 g - private List<BookInfo> books;1 X% ?% ]1 y- t/ \+ D
- private PageBean pageBean;
# n- O# J4 M+ e* z) B3 l - private BookInfo book;* @7 G1 B; {5 b0 X( @' z) _4 {
- 4 F) O- n0 }0 |6 \$ Z: x
-
" g5 h8 Y. s E+ D% w8 I7 ` - /**
. B& D; X& G( e% x3 L4 k - * @return the book6 f( \& {7 }' z; y0 N
- */# M) F% I8 \" R
- public BookInfo getBook() {
: a/ r& V' Y: Z: g - return book;8 f1 @ M2 P' h4 o* z
- }
) k7 e2 M" K* `, h [1 V - /**7 m8 n" M U n' [5 w9 W
- * @param book the book to set
$ c( {6 b7 o9 M0 z5 e( l2 Q - */ E& y- m& {& J2 A+ @1 X5 B% s) h/ v
- public void setBook(BookInfo book) {5 }; q! }" k* _$ L3 `2 h
- this.book = book;' ? H$ z$ T% g0 m; u$ \! f
- }* {6 p3 C4 j' P' F s( U
- & c C7 T$ b ^% w' {
- /**- f# Y# E; T0 D7 }4 B+ h5 [
- * @return the pageBean' d4 n5 t' ~, N4 B5 `/ M, g
- */& Q( U. x' x& {6 u* ~! {
- public PageBean getPageBean() {6 ~' p9 l7 J+ j5 w4 i: J5 x$ U8 h& f
- return pageBean;
: o1 J' {+ X7 T6 w) }1 J - }
: U G1 J) b+ D - /**, ^5 n2 a, o. A* Q. ^
- * @param pageBean the pageBean to set
& T9 R- d: \8 ~3 y% [! a - */2 U! T$ ^- i$ s; I8 p& O
- public void setPageBean(PageBean pageBean) {3 ]* o. N/ z" `% S. f
- this.pageBean = pageBean;$ X; t! y+ ?1 `6 o" x8 }0 k
- }9 v0 d( X2 Y% ?0 S8 b
- 7 _6 M! v$ O/ k# d# h' \0 F
- /**
% D! B+ O+ r {$ z - * @return the books
4 o- W" J7 x- O3 c) F+ x" V. R% s - */1 b. v g- M6 ^0 X! D: h: l! T
- public List<BookInfo> getBooks() {
! [% V( u( T7 w; [' I" \( H& p - return books;
1 Z5 K0 |- S: C9 o% U- G9 ~1 K' q6 b1 F - }
, L0 e3 K6 L9 Z9 U$ w - , q" z, j( s6 H! Z/ O3 _8 y
- /**
8 k; R0 z& P4 M" s; v - * @param books the books to set& g q7 k2 t+ e0 Q: [5 g% {
- */
$ A* y$ [3 ^ E# m! P1 h - public void setBooks(List<BookInfo> books) {7 e! J* U6 P% |' }# i% o
- this.books = books;
7 O: e5 q+ E2 j7 k' v h( y - }
# d" y4 o& }; U2 ^7 S
* t0 J% r' }' v2 ^ V+ C- public String showBookInfoList() {! P6 `8 V- `; ^5 k1 d, B
- pageBean.setPageSize(5);
$ G$ d: z7 J/ ~! M9 W4 j! N - this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));; u0 X3 B3 j! J
- return SUCCESS;% @3 [3 a6 ~6 S2 o8 B# u: i
- }1 R# A. S4 c$ o7 A
* A/ s! l+ E* Y- }
1 f# H7 `$ [6 l) h1 i3 H7 m
复制代码 applicationContext-persistence.xml:
% r8 }4 W( R, U- _- <?xml version="1.0" encoding="UTF-8"?>
# f, P; v- W9 B# m8 P - <beans xmlns="http://www.springframework.org/schema/beans"
% i% a7 }- x5 k& h% A7 J; ` - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
L F9 A+ x% q% |# [ - xmlns:context="http://www.springframework.org/schema/context"
+ |# T$ Z; Z/ ]4 y) Y6 _ - xmlns:tx="http://www.springframework.org/schema/tx" \6 Y i1 T; \% E3 d3 O) Z7 K; N
- xsi:schemaLocation="http://www.springframework.org/schema/beans 5 {8 X$ D N# C0 j t3 f
- http://www.springframework.org/schema/beans/spring-beans.xsd
; S4 W5 n: B* C - http://www.springframework.org/schema/context
# r Z6 x7 L- [) l2 }$ [ - http://www.springframework.org/schema/context/spring-context.xsd
. v5 j1 ~$ @$ t' J+ X - http://www.springframework.org/schema/tx 1 f; S/ ]- ^' C" C- V* }2 H6 {0 h( x% F
- http://www.springframework.org/schema/tx/spring-tx.xsd">
% S6 A _7 P& {9 n- _0 F - <!-- 使用注解方式装配属性文件 -->
& }; i7 j3 d) f2 E4 K' y - <context:property-placeholder location="classpath:hibernate.template.properties" />
) E$ l4 x& v% i+ Y - <!-- 配置数据源 -->9 g( N3 Y' g, D' ^
- <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
! _4 L1 b6 Y( ~' z2 i; M, O - <property name="driverClassName" value="${hibernate.connection.driver_class}" />
; s# S; J" p! r+ R - <property name="url" value="${hibernate.connection.url}" />& J1 o7 u! Y, k' C
- <property name="username" value="${hibernate.connection.username}" />2 h$ r: A" e8 H4 f# ]0 ^5 w
- <property name="password" value="${hibernate.connection.password}" />
; u) B3 w' V8 z8 v9 U1 S3 u - </bean>5 Y% Z3 n% H \- s/ x. S4 R
- " k( j5 l* N! L4 c; m/ C% `4 H9 o
- <!-- 整合sessionFactory对象到spring容器进行管理 -->1 w& z5 T6 u, G, q) V6 w
- <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">: X' ?/ o! X W' }
- <!-- 把spring容器中的数据源注入到dataSource属性中 -->$ m, v4 J4 x: i8 Z1 t( e
- <property name="dataSource" ref="springDataSource" />5 A+ N" `4 H* Y8 d' ^
- <!-- 扫描装配需要管理的实体类 -->7 f' }! y. \, G2 O0 T$ c' v
- <property name="packagesToScan">9 {$ ^% F* k6 S1 P
- <list>( q( }# R* z% k5 g$ u
- <value>com.s2sh.annotation.entity</value>
( A; s. V9 f# _/ @' b6 x - </list>% u9 H `- L9 S6 u# a7 @2 r
- </property>9 @7 X! O# { z5 S& w+ g
- <!-- 配置额外属性 -->2 m4 c9 ]. t1 `8 a4 \2 ~% z7 R
- <property name="hibernateProperties">
3 J [0 R3 k7 l1 k4 x$ b - <props>
, b* Q; s1 u( M5 u# B5 W% {6 F( }( I% D - <prop key="hibernate.dialect">${hibernate.dialect}</prop>
8 m: C/ Y7 f2 V) G0 v) P - <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
; j F) ?6 G1 R' e" D+ u - <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
5 q$ `: Y g+ S/ d - <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
$ T Y9 Q3 S3 x* L - </props>
( i( k; X: M) V- c. T2 x" T - </property>
; t! P! s3 C$ F$ x/ a0 V - </bean>% m- i- W, y5 z" m+ V( M& s
-
' h% r- D; A, u! N0 J) T( p( R G# n - <!-- 配置事务管理器 -->' R+ S* l0 @* _# I& x. C" e* K
- <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">, w% X9 S# v) @, K
- <property name="sessionFactory" ref="hibernateSessionFactory" />+ n+ E) c' z9 t2 e7 `( H
- </bean>7 [! {2 C5 Z; C% Q
- 8 h1 r; y% k! F" o- b& N# r7 P
- <!-- 使用注解形式来管理事务 -->' p+ ?: d* Y4 F- e o
- <tx:annotation-driven transaction-manager="transactionManager"/>
: P) y" f3 c" }- p3 D$ U u" u/ Z -
7 M; X. f0 d" Z - <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->
4 k4 k" F$ x$ K5 E6 g) j - <context:component-scan base-package="com.s2sh.annotation" />' C; Q- [" C4 ? y$ I( P0 {0 O, s
- </beans>
复制代码 struts.xml:
; u. q( u6 v. q! |- <?xml version="1.0" encoding="UTF-8"?>' f, G# Q7 j' d2 p& [
- <!DOCTYPE struts PUBLIC5 x+ P$ G* c8 e2 c5 b1 C- s
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"1 c9 @4 d. y# `' V7 m: k( [
- "http://struts.apache.org/dtds/struts-2.3.dtd">& v. V9 U) I5 m2 U8 w9 a
- <struts>
! y T3 P% `( q1 D5 U - <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->
( p& O7 K- L6 e+ F8 @9 i4 ^ - <constant name="struts.objectFactory" value="spring" />, X( u2 v" B; O8 V+ d* x) d
- 6 e, ]4 a3 y' n! b7 ^
- <package name="base" extends="struts-default" namespace="/" abstract="true">
. @- r- y( p4 ~ - + t: A. X& x# F% u. k2 y9 [
- </package>
, k$ P6 n7 `' l# P/ x; R - : h5 p; y) u/ j2 _5 ^: N( K8 B
- <include file="config/struts-bookInfo.xml" />' E1 c3 L! ?- F n3 B
- </struts>
复制代码 " O Z: q( l: R# y/ _0 ]) w
S2SH三大框架采用注释整合项目案例 v) K6 }/ W! M$ A4 ^
解压码:
5 c* n! ]/ `; \ B* b& X% E
. ^ o) E! l8 |& S% @: V
" d8 p$ a$ ^4 k# x1 \7 k* V
6 I! g- W. x( m. n |
-
总评分: 帮币 + 1
查看全部评分
|