TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
spring+hibernate+struts2集成,注解方式配置。
( z- Y. {% F: j% Q( e% z7 [8 C1 e3 P1 h
BookInfoAction.java:
9 r/ d- d( u/ |! v, e- /**
4 E* h2 M: I+ x8 Z; a. g0 t - * ( I# K; C' q7 S" v" I
- */
+ j; v |: [+ b6 q* O# H8 v - package com.s2sh.annotation.book.action;
h' ~ k. D5 u" D9 F - import java.util.List;
+ ~& D X2 t P9 c% W - import javax.annotation.Resource;
# S1 j: P3 z$ V - import org.springframework.stereotype.Controller;, U: j2 a' p: V
- import com.opensymphony.xwork2.ActionSupport;! \& F: u" r; h, ^1 O
- import com.s2sh.annotation.book.service.BookInfoService;/ b! q1 y- u- T' v
- import com.s2sh.annotation.entity.BookInfo;
3 X; u* E' U: L3 F1 K - import com.s2sh.annotation.entity.PageBean;3 `/ O+ Z, }0 h% P1 D
, |& f- |) R$ r* j, F+ r/ A% S- /**# A. n. [ o0 v- C1 y/ V' d! w: a" E
- * @author Administrator* U- f* |4 R/ J( X2 W; i+ W H
- *% l4 l' n5 N4 E" n8 |
- */
6 A6 l8 r" f5 B+ G7 _- E - @Controller // 标注控制层对象
6 a. c7 I' y1 x H2 @ - public class BookInfoAction extends ActionSupport {- V* y I1 D& m' M
. P) O8 C& m: Q ^3 E- private static final long serialVersionUID = 1L;2 [$ d2 k l5 V G8 M( c
- : Q* S6 `) y# G& o, p
- @Resource(name="bookInfoServiceImpl")
0 ? A: I5 B# H2 f7 Q - private BookInfoService bookInfoService;
& V1 e2 t( r" R: x/ p v1 N* V, L - & l4 _$ k3 d0 ^) j9 r2 G* R7 d
- private List<BookInfo> books;& B l0 f; I& W3 M* Y3 {( }
- private PageBean pageBean;! t! d- C9 w" N* o# E8 g, R/ E" k0 a3 U
- private BookInfo book;
3 g$ u: w9 h9 }% V T) ~ - , A& F" U* \( _) J( [$ ]4 L
- 8 ^1 z1 w* b2 z
- /**+ u- N9 c1 `( N7 Q+ Y4 ?
- * @return the book
; L! \4 N5 l6 K6 B8 G$ n% c - */
1 D5 @3 P! I- R1 c6 ?7 A I" j! u - public BookInfo getBook() {
c7 H2 S1 u" q" n" M - return book;
3 [' C1 {" [9 R - }
$ V ^: _+ D, g! d* Z m, S$ o) W" n - /**
: E8 e" d' W! o - * @param book the book to set
/ o% W2 _% m2 T4 o9 w. l6 Q - */
2 t- G* T E' V6 X - public void setBook(BookInfo book) {
) n" [$ h$ s; J i p1 }1 g Z - this.book = book;
l, C# R# z- T+ U/ X5 N5 V - }
2 Z- k2 s5 V- N; p
9 {$ w* V- R8 @) z- /**
2 O7 ~' U# c" W9 a/ w! ^ - * @return the pageBean
4 k1 l/ ^& Y6 W+ B/ U! X( q, G - */1 [6 `4 b: ^# P% K$ a
- public PageBean getPageBean() {
8 u" l2 H% U" k# u( _9 X! D - return pageBean;/ t, \. m0 a4 f3 n% e
- }, t3 R0 P' L5 u/ V9 \5 R5 Y3 @- v
- /**
: c. h7 |. u: v8 w, D - * @param pageBean the pageBean to set
" {) L0 b; |* @ - */
) D- n1 Z; j. p - public void setPageBean(PageBean pageBean) {
3 l) l1 ^* x. P- N8 q% |" g - this.pageBean = pageBean;
: K) M& v: [: |) b3 J4 s0 \0 C - }
9 _. O: w1 _2 m8 \ - ) Z: O) |$ i" M3 A9 t
- /**, [. `$ W1 O( ^1 O6 H9 u
- * @return the books% t. y$ _* e2 ]9 I V3 Y+ {/ |
- */& }& R, X K" J- ^5 Z) R
- public List<BookInfo> getBooks() {
3 P7 B8 z) e+ C. R8 W# g - return books;& q/ o2 B! q3 g
- }. f4 H. Y4 q" v
+ \' |/ m9 a& a- /**
5 q1 m3 }4 T+ S( Q7 S - * @param books the books to set4 H: X! Y7 u! S3 u- u: h
- */5 q5 e% @6 P& b8 @, U$ T# B& K
- public void setBooks(List<BookInfo> books) {1 ]4 }6 V( z8 @; N
- this.books = books;
2 m: m I0 H, I2 R% V$ h* Y - }8 m7 x3 x, t% c2 \% y
- u0 p5 Z' N- ?, J9 }+ w- U2 i
- public String showBookInfoList() {
- I& P0 \. v0 m- }. _# G' `' x - pageBean.setPageSize(5);
( W0 g e, S. J - this.setPageBean(bookInfoService.getPagingByBookInfo(pageBean, book));
& ~* F: x* [* a; x& `* u- r4 B4 z - return SUCCESS;
( N; j+ i/ x0 N0 `6 i - }; U. \$ W* K7 V# Q' t
- ( x! D+ @8 j$ m8 Z
- }9 R' j$ V! ~* Z* s
复制代码 applicationContext-persistence.xml:( v6 T9 h9 R0 F( s& [$ n
- <?xml version="1.0" encoding="UTF-8"?>
) O# Y/ t5 X& x$ Z0 A' b5 G - <beans xmlns="http://www.springframework.org/schema/beans"# d# h$ e" |) `0 E A
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
. W/ r6 B) [2 A; x' p2 j - xmlns:context="http://www.springframework.org/schema/context"2 g3 H+ M' ~2 s6 f1 r
- xmlns:tx="http://www.springframework.org/schema/tx"7 w, F/ X4 q5 x% N# ]+ l9 b2 i
- xsi:schemaLocation="http://www.springframework.org/schema/beans
6 [8 N8 t& c8 e1 Q - http://www.springframework.org/schema/beans/spring-beans.xsd
9 U7 \7 G, C3 K" k8 ^8 ~! e% U" n - http://www.springframework.org/schema/context
Q) r9 O% _* N) m - http://www.springframework.org/schema/context/spring-context.xsd & |' @3 y) C' X1 d$ N5 n. Q
- http://www.springframework.org/schema/tx
! A( j9 ~5 _; P# K8 {" w- Z ~7 r! R - http://www.springframework.org/schema/tx/spring-tx.xsd">' @% w" b7 D( H+ V# k; r2 ]/ a
- <!-- 使用注解方式装配属性文件 -->
! z, c6 A+ {( f j2 s) a - <context:property-placeholder location="classpath:hibernate.template.properties" />
, }- e2 P2 Z- W e4 D, v) a6 y - <!-- 配置数据源 -->
; W* G) S3 T5 m - <bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
7 B4 ^) w5 f$ o5 C B - <property name="driverClassName" value="${hibernate.connection.driver_class}" />5 c7 W9 D4 f0 N! m. _" Q9 ]
- <property name="url" value="${hibernate.connection.url}" />7 o7 q1 d! b: ~* x: S: u7 {# J
- <property name="username" value="${hibernate.connection.username}" />+ a! J8 Q" ], C( y
- <property name="password" value="${hibernate.connection.password}" />) I" k7 L. C" a- d5 H7 ~+ [
- </bean>5 M7 L% j) E7 [1 S- W J1 Q
- % |- c# C& f% \9 [
- <!-- 整合sessionFactory对象到spring容器进行管理 -->
" W7 ^# g9 W! ~ - <bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">4 B7 `4 m2 u! G: @! m0 U5 O! U
- <!-- 把spring容器中的数据源注入到dataSource属性中 -->, J2 z* A; j6 j* Y: F
- <property name="dataSource" ref="springDataSource" />
8 O8 f) l9 n4 _ ~ - <!-- 扫描装配需要管理的实体类 -->4 P$ }. J V9 }/ t$ K0 E
- <property name="packagesToScan">
* {# ]( {) Q$ F/ P - <list>
* `6 E# n& H9 @& B# j4 b! N - <value>com.s2sh.annotation.entity</value>
6 @2 [0 ~+ Q% o- z/ E( D/ c - </list>3 [& i+ d/ t5 p! ?
- </property>
: t* A; E" n5 G Q( P - <!-- 配置额外属性 -->4 T" k2 V0 X% l) h2 x! q* o8 W* f
- <property name="hibernateProperties">" v" q) s n3 |" X7 R
- <props>
; L: {+ G { e8 R5 U - <prop key="hibernate.dialect">${hibernate.dialect}</prop>/ s+ Q7 C( G( C% F& m
- <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
( M: \) h5 M0 } S- S4 h - <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>( t2 I; p% h: d) c' N" x
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>) a+ J2 {: [: j$ p4 `
- </props>
& ]( t$ F, C8 ]* V - </property>
, {' i2 m# @: w" o4 N - </bean>
5 U+ E2 N8 N; n' n - 7 N7 E0 M* r9 n% h3 o Q% F6 V
- <!-- 配置事务管理器 -->
1 q% r: I- K& {5 x - <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
; w2 S* r2 @# a% i - <property name="sessionFactory" ref="hibernateSessionFactory" />/ ~# |# {: o0 q! d/ {
- </bean>$ C* s* o: Z: H: I* U0 _3 G
- 6 \' w: ^' \! r9 h% X& F9 l
- <!-- 使用注解形式来管理事务 -->( r" p% E3 }4 D( ]; p; n
- <tx:annotation-driven transaction-manager="transactionManager"/>% c# T7 G. `3 X1 E3 a2 R
- 2 R) j( @# K7 k
- <!-- 启动自动扫描方式将需要管理的组件纳入到spring容器进行管理 -->( m& u3 ~ v, _' ?5 V* B6 A( F
- <context:component-scan base-package="com.s2sh.annotation" />
0 I6 L2 M6 n9 F5 U6 K, X$ t - </beans>
复制代码 struts.xml:
/ z1 O/ d7 H, Q0 C0 [2 u* U5 C3 V {- <?xml version="1.0" encoding="UTF-8"?>
: Y9 w0 Q4 ~ N - <!DOCTYPE struts PUBLIC; t1 O6 r( g* a( i; c X
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"( H/ ?* v/ ]$ a$ {3 P
- "http://struts.apache.org/dtds/struts-2.3.dtd">+ f9 ]' V: |) Q* G
- <struts> N6 P3 q1 P: y- Z, U8 f- N
- <!-- 把struts创建Action对象的权力交给Spring容器进行管理 -->; g6 e5 c# B5 u
- <constant name="struts.objectFactory" value="spring" />
& w9 O9 R/ g: o7 u8 N - . [3 U5 B/ E( `7 V9 |
- <package name="base" extends="struts-default" namespace="/" abstract="true">9 M/ Y) {+ T, E
-
$ X; T8 n0 I8 B# l - </package>! J5 K3 s, b9 U1 v. k. R1 V
-
7 I& ^: @# s$ \# n" @1 r- b6 r - <include file="config/struts-bookInfo.xml" />
% C# i$ d9 b2 v, c1 v# d, s - </struts>
复制代码 1 i7 l7 l2 K5 ~* Z# Q
S2SH三大框架采用注释整合项目案例- n z0 `5 t5 H9 s' `2 M" q D& S
解压码:
: U/ w9 p5 [+ T" L% V5 |! L
/ l/ z6 R& |2 E" C3 ~; }/ [* q8 |% S F
# ^6 `) h. P. y/ K% @9 A0 r
% N4 F% a X5 i: `/ S5 @. B6 b |
-
总评分: 帮币 + 1
查看全部评分
|