Spring与Hibernate整合Spring与Struts2整合.docx
- 文档编号:1795685
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:21
- 大小:576.01KB
Spring与Hibernate整合Spring与Struts2整合.docx
《Spring与Hibernate整合Spring与Struts2整合.docx》由会员分享,可在线阅读,更多相关《Spring与Hibernate整合Spring与Struts2整合.docx(21页珍藏版)》请在冰点文库上搜索。
Spring与Hibernate整合Spring与Struts2整合
实验四:
Spring与Struts2整合应用、Spring与Hibernate整合应用
实验要求:
(一)Spring与Struts2整合,实现一个简单的登录模拟(不操作数据库)。
(二)Spring与Hibernate整合,实现一条登录记录的添加。
(三)扩展实验:
添加AOP应用。
实验目的:
掌握Spring框架的使用,理解依赖注入,掌握AOP编程的思想,掌握Spring框架与Struts2框架的整合和Spring框架与Hibernate框架的整合。
实验步骤:
(一)Spring与Struts2整合,实现一个简单的登录模拟(不操作数据库)。
1、创建Web项目Struts_Spring。
2、添加Struts2的应用:
添加Struts2框架。
添加5个Jar包:
struts2-core-2.0.14.jar,xwork-2.0.4.jar,ognl-2.6.11.jar,common-logging-1.0.4.jar,freemarker-2.3.8.jar。
修改web.xml
xmlversion="1.0"encoding="UTF-8"?
>
xmlns=" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" 3、创建login.jsp、login_success.jsp。 login.jsp代码如下: <%@pagelanguage="java"pageEncoding="utf-8"%> <%@tagliburi="/struts-tags"prefix="s"%>
formaction="login.action"method="post"> textfieldname="xh"label="学号"/> passwordname="kl"label="口令"/> submitvalue="登录"/> form> 创建login_success.jsp,代码如下: <%@pagecontentType="text/html;charset=gb2312"%> <%@taglibprefix="s"uri="/struts-tags"%> propertyvalue="xh"/>欢迎您登录成功 4、创建Action。 在包org.action下创建LoginAction.java,代码如下: packageorg.action; importcom.opensymphony.xwork2.ActionSupport; publicclassLoginActionextendsActionSupport{ privateStringxh; privateStringkl; publicStringgetXh(){ returnxh; } publicvoidsetXh(Stringxh){ this.xh=xh; } publicStringgetKl(){ returnkl; } publicvoidsetKl(Stringkl){ this.kl=kl; } publicStringexecute()throwsException{ returnSUCCESS; } } 5、配置struts.xml文件,代码如下: DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http: //struts.apache.org/dtds/struts-2.0.dtd"> 6、部署运行。 7、添加Spring框架。 添加jar包,增加XML配置文件(使用MyEclipse向导添加) 右击项目名,选择【MyEclipse】→【AddSpringCapabilities…】菜单项,将出现如下图所示的对话框,选中要应用的Spring的版本及所需的类库文件(Spring2.0CoreLibraries、Spring2.0WebLabraries)。 选择结束后,单击【Next】按钮,出现如下图所示的界面。 用于创建Spring的配置文件。 单击【Finish】按钮完成。 项目的src文件夹下会出现名为applicationContext.xml的文件,这就是Spring的核心配置文件。 8、整合Spring和Struts2。 1)添加Spring支持包struts2-spring-plugin.jar。 2)修改web.xml内容,使得程序增加对Spring的支持。 … org.springframework.web.context.ContextLoaderListener --此路径为Spring配置文件applicationContext.xml路径--> /WEB-INF/classes/applicationContext.xml … 3)创建消息包文件struts.properties。 在src文件夹下创建struts.properties文件,使得Struts2的类的生成交给Spring完成。 struts.objectFactory=spring 9、修改applicationContext.xml。 xmlversion="1.0"encoding="UTF-8"? > 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"> 10、修改struts.xml。 使得struts2的类的生成交给Spring完成。 DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http: //struts.apache.org/dtds/struts-2.0.dtd"> --使用Spring生成的类对象--> 11、最后部署运行 (二)Spring与Hibernate整合,实现一条登录记录的添加。 1、在MySQL中创建数据库表。 数据库名为XSCJ,建立登录表dlb: 列名 描述 数据类型 可空 默认值 说明 id 标识 int × 自增1 主键,自增 xh 登录号 char(6) × 无 外键,xsb中xh kl 口令 char(20) × 无 2、创建Web项目,命名为“Hibernate_Spring”。 3、添加Spring的开发能力。 右击项目名,选择【MyEclipse】→【AddSpringCapabilities…】菜单项,将出现如下图所示的对话框,选中要应用的Spring的版本及所需的类库文件。 注意,本书用的Spring版本为Spring2.0。 选择Spring的核心类库Spring2.0CoreLibraries、Spring2.0WebLabraries、Spring2.0AOPLibraries和Spring2.0PersistenceJDBCLibraries。 单击【Next】按钮,提示是否建立Spring配置文件,在默认情况下选择applicationContext.xml文件的存放路径,选择在WEB-INF文件夹下,然后单击【Finish】按钮,如下图所示。 加载Hibernate框架。 右击工程文件,选择【MyEclipse】→【AddHibernateCapabilities…】菜单项,出现如下图所示的对话框。 选择Hibernate版本及需要的类库。 单击【Next】按钮,出现如下图所示对话框,提示是用Hibernate的配置文件还是用Spring的配置文件进行SessionFactory的配置,选择使用Spring来对Hibernate进行管理。 这样最后生成的工程中就不包含hibernate.cfg.xml,好处是在一个地方就可以对Hibernate进行管理。 单击【Next】按钮,出现如下图所示的对话框,提示是创建一个新的Hibernate配置文件还是使用已有的配置文件,由于刚才已经生成了Spring配置文件,并且要在其中进行Hibernate的配置,所以选择复选框“ExistingSpringconfigurationfile”。 单击【Next】按钮,出现如下图所示的对话框,要求选择数据库连接信息。 这里需要注意一点,BeanId处填写数据源的名称,如“datasource”(数据源的创建请参考实验三)。 单击【Next】按钮,出现如下图所示的对话框,提示是否创建SessionFactory类,由于本程序Spring为注入sessionFactory,所以不用创建,单击【Finish】按钮。 4、生成与数据库表对应的Java数据对象和映射。 打开MyEclipse的DatabaseExplorerPerspective,右击dlb表,选择HibernateReverseEngineering菜单项,如下图所示设置。 单击【Next】按钮,在IDgenerator中选择native,直接单击【Finish】按钮完成。 5、编写DlDao.java接口。 在src文件夹下建立包org.dao,在该包先建立接口,命名为“DlDao”,这里主要以添加用户为例,代码如下: packageorg.dao; importorg.model.Dlb; publicinterfaceDlDao{ publicvoidsave(Dlbdl); } 编写DlDao.java实现类。 在src文件夹下建立包org.dao.imp,在该包下建立类,命名为“DlDaoImp” packageorg.dao.imp; importorg.dao.DlDao; importorg.hibernate.Session; importorg.hibernate.SessionFactory; importorg.hibernate.Transaction; importorg.model.Dlb; publicclassDlDaoImpimplementsDlDao{ //依赖注入SessionFactory对象,set方法注入 privateSessionFactorysessionFactory; publicvoidsetSessionFactory(SessionFactorysessionFactory){ this.sessionFactory=sessionFactory; } publicvoidsave(Dlbdl){ try{ //获得Session对象 Sessionsession=sessionFactory.openSession(); Transactionts=session.beginTransaction(); session.save(dl); mit(); }catch(Exceptione){ e.printStackTrace(); } } } 6、修改Spring配置文件applicationContext.xml,注入dlDAO: … --注入dlDao--> … 修改后的applicationContext.xml: xmlversion="1.0"encoding="UTF-8"? > //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定义数据源--> class="mons.dbcp.BasicDataSource"> --定义数据库驱动--> value="com.mysql.jdbc.Driver"> --定义数据库URL--> value="jdbc: mysql: //localhost: 3306/xscj"> --定义数据库的用户名--> --定义数据库密码--> --定义Hibernate的SessionFactory--> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> --定义SessionFactory必须注入DataSource--> --定义Hibernate的SessionFactory属性--> org.hibernate.dialect.MySQLDialect --定义POJO的映射文件--> --注入dlDao--> 7、编写测试类。 在src文件夹下建立包test,在该包下建立类Test,代码如下: packagetest; importorg.dao.DlDao; importorg.model.Dlb; importorg.springframework.context.ApplicationContext; importorg.springframework.context.support.FileSystemXmlApplicationContext; publicclassTest{ publicstaticvoidmain(String[]args){ Dlbdlb=newDlb(); dlb.setXh("081109"); dlb.setKl("123456"); ApplicationContextcontext=new FileSystemXmlApplicationContext("WebRoot/WEB-INF/classes/applicationContext.xml"); DlDaodlDao=(DlDao)context.getBean("dlDao"); dlDao.save(dlb); } } 8、运行该测试类 (三)扩展实验: 添加AOP应用 在Struts_Spring项目基础上添加AOP应用(pointcut+advice) 1、编写java类(模拟DAO层来检测学号和口令) 在org.DAO包下,新建登录验证DAO层接口IDlDAO.java: packageorg.DAO; publicinterfaceIDlDAO{ publicbooleancheck(Stringxh,Stringkl); publicbooleandlcheck(Stringxh,Stringkl); } 在org.DAO包下,新建登录验证DAO层实现类DlDAOImpl.java: packageorg.DAO; publicclassDlDAOImplimplementsIDlDAO{ publicbooleancheck(Stringxh,Stringkl){ //TODOAuto-generatedmethodstub System.out.println("Hellocheck,"+xh+"||口令: "+kl); returntrue; } publicbooleandlcheck(Stringxh,Stringkl){ //TODOAuto-generatedmethodstub System.out.println("Hellodlcheck,"+xh+"||口令: "+kl); returntrue; } } 在org.aop包下,新建advice类LogBeforeAdvice.java: packageorg.aop; importjava.lang.reflect.*; importjava.util.logging.Level; importjava.util.logging.Logger; importorg.springframework.aop.MethodBeforeAdvice; publicclassLogBeforeAdviceimplementsMethodBeforeAdvice{ privateLoggerlogger=Logger.getLogger(this.getClass().getName()); publicvoidbefore(Methodmethod,Object[]args,Objecttar您好!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring Hibernate 整合 Struts2