Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Similar documents
设计模式 Design Patterns

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

第03章 控制反转(Spring IoC)

Java应用框架Spring实验指导书.doc

输入 project name 选择完成

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

untitled

在Spring中使用Kafka:Producer篇

1.2. Sql 映射配置 小风 Java 实战系列教程 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//dtd Mapper 3.0//EN" "

EJB-Programming-4-cn.doc

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

优迈科技教学大纲2009版本

在所有的项目开发中, 一定是多人协作的团队开发, 但是使用框架就会出现一个问题, 我们所 有的 Action 以及相关的路径都要求在我们的 struts.xml 文件中配置, 如果所有的人去修改一个 文件, 那么就会变得混乱, 而且有可能出现冲突, 那么在 struts.xml 文件中为了解决这个问

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

nb.PDF

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学

untitled

Page 2 of 16 </context-param> <!-- 著名 Character Encoding filter --> <filter> <filter-name>encodingfilter</filter-name> <filter-class>org.springframewo

<313031A4C9BEC7C160BA5DB3E A457BAF4A4BDA769AAA9292E584C53>

nbqw.PDF

IoC容器和Dependency Injection模式.doc

序号:001

EJB-Programming-3.PDF

基于ECO的UML模型驱动的数据库应用开发1.doc

<!-- import outer proper

28 资 源 与 产 业 2015 年 题 1) 建 立 项 目 信 息 化 管 理 的 完 整 流 程, 在 项 目 信 息 化 管 理 过 程 中, 始 终 需 要 按 照 项 目 子 项 目 课 题 之 间 的 隶 属 关 系 实 现 三 级 管 理, 便 于 项 目 管 理 者 准 确 掌

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

第一篇 Hibernate实用技术

Microsoft Word - 01.DOC

「西醫基層總額支付委員會《第28次委員會議紀錄

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

Microsoft Word - MIS.doc

使用 XFire 与 Spring 开发 Web Service 2 实现功能与特点 基于 J2EE 平台的 Web Service 服务 开发方便, 配置简单 设计接口 实现服务 配置暴露接口 XFire 将自动生成对应的 wsdl 支持高级详细配置 与 Spring 无缝集成 运行环境 JDK

untitled

将 MD5 的工具类拷贝到项目中 二 微服务模块的搭建 我们将权限的查询放到一个单独的模块中, 这个模块提供接口供给消费者远程调用 (RPC), 这次范例是微服开发的雏形, 在以后你使用 springcloud 的时候会使用到今天的概念 1 使用 maven 创建新的模块 (microboot-sh

Microsoft Word - 王彬_已修改_.doc

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

LiveBOS产品白皮书

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

LiveBOS产品白皮书


1.5招募说明书(草案)

Servlet

金融信息系统数据库访问实验指导书.doc

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ

Java

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

1. 2. Flex Adobe 3.

了 波 涛 和 号 声 袁 读 者 很 容 易 就 进 入 广 州 城 的 水 上 旅 途 袁 进 入 一 座 野 水 上 名 城 冶 的 传 说 中 去 遥 于 是 袁 一 座 名 城 往 事 充 满 了 漂 流 感 袁 旋 律 自 水 上 而 来 袁 我 们 就 这 样 来 到 了 往 事 的

壹、摘 要

Microsoft Word - 第3章.doc

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

XXXXXXXX

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

北 风 网 讲 师 原 创 作 品 ---- 仅 供 学 员 内 部 交 流 使 用 前 言 吾 尝 终 日 而 思 矣, 不 如 须 臾 之 所 学 也 ; 吾 尝 跂 而 望 矣, 不 如 登 高 之 博 见 也 登 高 而 招, 臂 非 加 长 也, 而 见

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

7 以下关于 SessionFactory 的说法正确的是 ( ) A 对于每个数据库事务, 应该创建一个 SessionFactory 对象 B 一个 SessionFactory 对象对应多个数据库存储源 C SessionFactory 是重量级的对象, 不应该随意创建 如果系统中只有一个数据

new 进行创建对象, 是程序主动去创建依赖对象 ; 而 IoC 是有专门一个容器来创建这些对象, 即由 Ioc 容器来控制对象的创建 ; 谁控制谁? 当然是 IoC 容器控制了对象 ; 控制什么? 那就是主要控制了外部资源获取 ( 不只是对象包括比如文件等 ) 为何是反转, 哪些方面反转了 : 有

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

Microsoft Word - Learn Objective-C.doc

Stateless Session Beans(无状态bean)的学习

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

使用MapReduce读取XML文件

Microsoft Word - JkfZw3

OSWorkflow Documentation

自动化接口

untitled

untitled

设计模式 Design Patterns

Microsoft Word - 第5章.doc

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

FileMaker 16 ODBC 和 JDBC 指南

Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計

拦截器(Interceptor)的学习

EasyDBO简易教程-stef-天意.doc

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

服务框架 HSF 使用与配置 一江更新时间 : 目录 HSF 常用 OPS 和开发工具介绍... 1 HSF 的使用和配置... 2 下载和安装 HSF... 2 服务开发与部署... 5 服务查询 服务调用 HSFUNIT 测试包的使用 HSF

f2.eps

untitled

android讲座

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

D C 93 2

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject("exception", writer.tostring()); mv.setviewname("error"); return

基于CDIO一体化理念的课程教学大纲设计

untitled

Android Android Android SDK iv

"+handlermethod.getbean().getclass().getname()); public void aftercompletion(httpservletrequest req, HttpServletResponse resp, Object handler, Excepti

附录J:Eclipse教程

J2ME ISBN J2ME MIDP MIDP 2.0 API J2ME Netbeans IDE 4.1 Mobility Pack 4.1 MIDlet MIDlet MIDP PUSH API PDA API Ja

jsp

<4D F736F F D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63>

mvc

untitled

附件2

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

Microsoft Word - PHP7Ch01.docx

Chapter 9: Objects and Classes

Transcription:

1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件

3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build Path, 同时也提供了 applicationcontext.xml 文件 注意 : 最好把 applicationcontext.xml 文件保存到当前项目的 WebRoot/WEB-INF 的根目录下

4. 删除 hibernate.cfg.xml 文件, 修改 applicationcontext.xml 文件的内容, 增加 sessionfactory 和 datasource 的设置 修改的内容如下所示 : <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource"> <property name="driverclassname" value="oracle.jdbc.driver.oracledriver"> <property name="url" value="jdbc:oracle:thin:@liuweiv3000:1521:ora9">

</bean> <property name="username" value="scott"> <property name="password" value="tiger"> <bean id="sessionfactory" class="org.springframework.orm.hibernate3.localsessionfactorybean"> <property name="datasource"> <ref bean="datasource" /> <property name="hibernateproperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.oracle9dialect </prop> </props> <property name="mappingresources"> <list> <value>cn/com/jobedu/shop/model/catalog.hbm.xml</value> </list> </bean> </beans> 5. 通过 MyEclipse 的向导方式, 生成 POJO 类和对应的映射文件

6. 修改 applicationcontext.xml 文件中 <property name="mappingresources"> 元素的内容 如下所示 : <property name="mappingresources"> <list> <value>cn/com/jobedu/shop/model/catalog.hbm.xml</value> <value>cn/com/jobedu/shop/model/product.hbm.xml</value> </list> 7. 编写 DAO 接口 package cn.com.jobedu.shop.dao; import java.util.list; import cn.com.jobedu.shop.model.catalog; public interface CatalogDao { public void create(catalog c); public Catalog getcatalog(long id); public List getcatalogs(); public void update(catalog c); public void remove(long id); 8. 编写 DAO 接口的实现类, 实现类使用 Spring 提供的帮助类 示意如下 : package cn.com.jobedu.shop.dao.hibernate; import java.util.list; import org.springframework.orm.hibernate3.support.hibernatedaosupport; import cn.com.jobedu.shop.dao.catalogdao; import cn.com.jobedu.shop.model.catalog;

public class CatalogDaoHibernate extends HibernateDaoSupport implements CatalogDao { @Override public void create(catalog c) { // HibernateTemplate template=gethibernatetemplate(); // template.save(c); gethibernatetemplate().save(c); @Override public Catalog getcatalog(long id) { return (Catalog)getHibernateTemplate().get(Catalog.class, id); @Override public List getcatalogs() { return gethibernatetemplate().find("from Catalog order by id desc"); @Override public void remove(long id) { // Catalog c=this.getcatalog(id); // gethibernatetemplate().delete(c); gethibernatetemplate().delete(getcatalog(id)); @Override public void update(catalog c) { gethibernatetemplate().update(c); 9. 修改 applicationcontext.xml 文件, 增加对 Dao 实现类的配置 <bean id="catalogdao" class="cn.com.jobedu.shop.dao.hibernate.catalogdaohibernate"> <property name="sessionfactory"> <ref bean="sessionfactory" /> </bean>

1.2 再组合 Struts2, 完成 Struts2 Spring 和 Hibernate 的三者组合 0. 修改 web.xml 文件, 增加 struts2 的所需要的过滤器配置 <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 1. 增加 Struts2 相应类库, 增加 struts2-spring-plugin-x-x-x.jar 文件 (Struts 的压缩包中,Struts 所提供的 )

2. 需要拷贝 struts.xml 文件到 src 跟目录下, 再修改 struts.xml 文件, 进行常量配置 <struts> <constant name="struts.objectfactory" value="spring" /> </struts> 3. 修改 web.xml 文件, 配置 Spring 监听器和上下文变量 <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/applicationcontext*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> 修改 web.xml 文件, 增加 OpenSessionInViewFilter 的设置 <filter> <filter-name>lazyloadingfilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.opensessioninviewfilter </filter-class>

</filter> <filter-mapping> <filter-name>lazyloadingfilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> 4. 编写 Action 类 5. 配置 struts.xml 文件 struts.xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.objectfactory" value="spring" /> <include file="struts-default.xml"/> <package name="default" extends="struts-default"> <action name="hello" class="hellobean"> <result>hello.jsp</result> </action>... </package> </struts> 6. 修改 applicationconext.xml, 默认情况下,Spring 从下面的文件中寻找为 action 所做的配置 <?xml version="1.0" encoding="utf-8"?> <beans default-autowire="byname"> <bean id="hellobean" class="cn.com.jobedu.helloworld" scope="prototype"/>... </beans> 7. 编写所需要的 JSP 文件 8. 部署, 调试整个项目 <!-- 配置事务管理器 -->

<bean id="transactionmanager" class="org.springframework.orm.hibernate3.hibernatetransactionmanager"> <property name="sessionfactory"> <ref local="sessionfactory"/> </bean> <!-- 配置事务特性, 配置 add delete 和 update 开始的方法, 事务传播特性为 required--> <tx:advice id="txadvice" transaction-manager="transactionmanager"> <tx:attributes> <tx:method name="add*" propagation="required"/> <tx:method name="delete*" propagation="required"/> <tx:method name="update*" propagation="required"/> <tx:method name="*" read-only="true"/> </tx:attributes> </tx:advice> <!-- 配置那些类的方法进行事务管理, 当前 cn.com.jobedu.crm.service 包中的子包 类中所有方法需要, 还需要参考 tx:advice 的设置 --> <aop:config> <aop:pointcut id="allmanagermethod" expression="execution (* cn.com.jobedu.crm.service.*.*(..))"/> <aop:advisor advice-ref="txadvice" pointcut-ref="allmanagermethod"/> </aop:config>