Struts+Spring+Hibernate的WEB公共开发框架课件_第1页
Struts+Spring+Hibernate的WEB公共开发框架课件_第2页
Struts+Spring+Hibernate的WEB公共开发框架课件_第3页
Struts+Spring+Hibernate的WEB公共开发框架课件_第4页
Struts+Spring+Hibernate的WEB公共开发框架课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Struts+Spring+Hibernate的WEB公共开发框架基于Struts+Spring+Hibernate的WEB公1主要内容开发框架的技术特点公共开发框架的结构与使用主要内容开发框架的技术特点2开发框架技术特点开发框架实现MVC机制开发框架使用Struts+Spring+Hibernate的轻量级J2EE构架视图层与控制层-Struts事务管理与JavaBean依赖注入-Spring数据持久层-Hibernate-Spring+Hibernate开发框架技术特点开发框架实现MVC机制3Struts+Spring+Hibernate的WEB公共开发框架课件4利用Spring加载业务对象实例在Action类实例中业务对象实例通过Spring的依赖注入机制进行加载业务层的事务由Spring的AOP通过声明来完成数据访问对象由容器在运行期动态注入利用Spring加载业务对象实例在Action类实例中业务对5Spring简介Spring非常的全面和标准.Spring是一个分层构架,意思是你可以选择只用它的一部分,而不影响其他.它的构架体系是内部相容的。开发框架重点使用了Spring构架的以下内容:依赖注入事务管理与Hibernate的集成Spring简介Spring非常的全面和标准.Sprin6一、初始化Spring环境利用Spring的ApplicationContext加载机制,在web.xml中增加:

<servlet><servlet-name>context</servlet-name><servlet-class>

org.springframework.web.context.ContextLoaderServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><context-param><param-name>contextConfigLocation</param-name><param-value>

/WEB-INF/dataAccessContext-local.xml

/WEB-INF/applicationContext.xml</param-value></context-param>一、初始化Spring环境7二、在Action类实例中加载业务对象实例------通过Spring的依赖注入机制进行加载WebApplicationContextwac=WebApplicationContextUtils.

getRequiredWebApplicationContext(servletContext);ITUserFacadetUserManager=(ITUserFacade)

wac.getBean(“tUserManager");与配置文件中的BeanID进行匹配与配置文件中的8三、Spring配置文件

<beanid=“tUserManager"parent="baseTransactionProxy">

<propertyname="target">

<beanclass="com.nbw.sample.domain.logic.TUserImpl">

<propertyname=“tUserDAO">

<refbean=“tUserDAO"/>

</property>

</bean>

</property>

</bean><beanid="baseTransactionProxy"class="erceptor.

TransactionProxyFactoryBean"abstract="true">

<propertyname="transactionManager"><refbean="transactionManager"/></property>

<propertyname="transactionAttributes">

<props>

<propkey="insert*">PROPAGATION_REQUIRED</prop>

<propkey="update*">PROPAGATION_REQUIRED</prop>

<propkey="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>事务管理三、Spring配置文件<beanid=“t9三、Spring配置文件(续)<beanid="tUserDAO"

class="com.nbw.sample.dao.hibernate.TUserDAO"

<propertyname="sessionFactory">

<reflocal="sessionFactory"/>

</property>

</bean><beanid="tUserManager"parent="baseTransactionProxy">

<propertyname="target">

<beanclass="com.nbw.sample.domain.logic.TUserImpl

">

<propertyname="tUserDAO

">

<refbean="tUserDAO"/>

</property>

</bean>

</property>

</bean>三、Spring配置文件(续)<beanid="tUse10数据持久层-DAO的使用publicclassTUserDAOextendsHibernateDaoSupportimplementsITUserDAO{publicListgetUsers(){ListuserList=getHibernateTemplate().find("fromTUser");//POtoVO ListvoUserList=newVector(); try{for(inti=0;i<userList.size();i++) {TUseranotherUser=newTUser(); BeanUtils.copyProperties(anotherUser,(TUser)userList.get(i)); voUserList.add(anotherUser);} } catch(Exceptionex) {ex.printStackTrace();} returnvoUserList;}}数据持久层-DAO的使用publicclassTUser11公共开发框架的结构与使用应用程序包结构及目录结构公共开发框架的结构与使用应用程序包结构及目录结构12数据访问对象包Hibernate实现包业务对象包

VO包业务逻辑包

控制层 action包,其目录下存放请求对应的Action类form包,其目录下存放各请求对应的ActionForm类 开发框架包,

提供开发框架所需类以及常用工具类

13jsp目录下存放Web应用的jsp文件JSP文件放在WEB-INF下可保证JSP页面的安全

14公共开发框架提供三个基类BaseAction类

BaseActionForm类

CommonException类公共开发框架提供三个基类BaseAction类15公共开发框架的使用-BaseAction类BaseAction类提供通用异常处理机制。BaseAction类的使用方法继承BaseAction类,实现doExecute()抽象方法。在doExecute()方法中编写请求处理代码。相关路径BaseAction类位于

mon包中公共开发框架的使用-BaseAction类16公共开发框架的使用-ActionForm类

BaseActionForm类对Struts的ActionForm的校验机制进行了封装。BaseActionForm提供两个常用校验方法1.校验字符串是否有空protectedvoidaddErrorIfStringEmpty

(ActionErrorserrors,StringmessageKey,Object[]messageArgs,Stringvalue)

公共开发框架的使用-ActionForm类

BaseAct17公共开发框架的使用-ActionForm类2.校验字符串与指定的正规表达式是否匹配:protectedvoidaddErrorIfStringNotMatch

(ActionErrorserrors,StringmessageKey,

Object[]messageArgs,Stringvalue,Stringregexp)BaseActionForm类的使用方法继承BaseActionForm,覆写它的doValidate()方法,在doValidate方法中实现自已的表单元素的校验,校验错误信息存入名为errors的参数中。校验过程中可使用BaseActionForm提供的两个常用校验方法。公共开发框架的使用-ActionForm类2.校验字符串与18公共开发框架的使用-ActionForm类校验错误信息的显示表单校验失败后,请求转发到该请求对应的JSP页面。如果JSP页面中有错误信息,则在JSP页面中使用Struts标志<html:errors/>,显示错误信息。相关路径BaseActionForm类位于

mon包中公共开发框架的使用-ActionForm类校验错误信息的显19公共开发框架的使用-异常处理BaseAction类中提供了通用的异常捕捉及处理机制BaseAction负责处理CommonException类型的异常,并在页面中显示相应的提示信息CommonException类CommonExceptionExceptionpublicListgetExceptions()publicvoidaddException(CommonExceptionex)publicvoidsetMessageKey(Stringkey)publicStringgetMessageKey()publicvoidsetMessageArgs(Object[]args)publicObject[]getMessageArgs()公共开发框架的使用-异常处理BaseAction类中提供了通20公共开发框架的使用-异常处理setMessageKey(Stringkey)设置异常提示信息的消息Key publicvoidsetMessageArgs(Object[]args)设置异常提示信息的消息参数 publicvoidaddException(CommonExceptionex)CommonException支持嵌套异常,可向CommonException对象中加入另一个CommonException对象,BaseAction支持对嵌套异常的处理公共开发框架的使用-异常处理setMessageKey(St21公共开发框架的使用-异常处理异常的捕捉与抛出可在业务层与数据访问层编写try/catch捕捉异常,并将其封装为CommonException抛出,由BaseAction负责异常信息的显示。一个例子:在业务对象的方法中进行异常捕捉、处理与抛出。

公共开发框架的使用-异常处理异常的捕捉与抛出22公共开发框架的使用-异常处理try{

sucess=this.getTUserManager().insertTUser(tUserBean);

}catch(Exceptione){

e.printStackTrace();

CommonExceptionexception=newCommonException();

exception.setMessageKey("error.database.save");

throwexception;

}消息keyerror.database.save=<li>数据库保存失败</li>applicationRperties文件中公共开发框架的使用-异常处理try{

23公共开发框架的使用-异常处理异常与Spring的事务管理

业务层的事务由Spring的AOP通过声明来完成。

在代码中自行捕捉及处理异常后,为保证事务的回滚,必须将异常沿调用栈向下传播,并由业务对象方法抛出。使Spring容器能够捕捉到该异常。

公共开发框架的使用-异常处理异常与Spring的事务管理24谢谢大家!谢谢大家!25基于Struts+Spring+Hibernate的WEB公共开发框架基于Struts+Spring+Hibernate的WEB公26主要内容开发框架的技术特点公共开发框架的结构与使用主要内容开发框架的技术特点27开发框架技术特点开发框架实现MVC机制开发框架使用Struts+Spring+Hibernate的轻量级J2EE构架视图层与控制层-Struts事务管理与JavaBean依赖注入-Spring数据持久层-Hibernate-Spring+Hibernate开发框架技术特点开发框架实现MVC机制28Struts+Spring+Hibernate的WEB公共开发框架课件29利用Spring加载业务对象实例在Action类实例中业务对象实例通过Spring的依赖注入机制进行加载业务层的事务由Spring的AOP通过声明来完成数据访问对象由容器在运行期动态注入利用Spring加载业务对象实例在Action类实例中业务对30Spring简介Spring非常的全面和标准.Spring是一个分层构架,意思是你可以选择只用它的一部分,而不影响其他.它的构架体系是内部相容的。开发框架重点使用了Spring构架的以下内容:依赖注入事务管理与Hibernate的集成Spring简介Spring非常的全面和标准.Sprin31一、初始化Spring环境利用Spring的ApplicationContext加载机制,在web.xml中增加:

<servlet><servlet-name>context</servlet-name><servlet-class>

org.springframework.web.context.ContextLoaderServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><context-param><param-name>contextConfigLocation</param-name><param-value>

/WEB-INF/dataAccessContext-local.xml

/WEB-INF/applicationContext.xml</param-value></context-param>一、初始化Spring环境32二、在Action类实例中加载业务对象实例------通过Spring的依赖注入机制进行加载WebApplicationContextwac=WebApplicationContextUtils.

getRequiredWebApplicationContext(servletContext);ITUserFacadetUserManager=(ITUserFacade)

wac.getBean(“tUserManager");与配置文件中的BeanID进行匹配与配置文件中的33三、Spring配置文件

<beanid=“tUserManager"parent="baseTransactionProxy">

<propertyname="target">

<beanclass="com.nbw.sample.domain.logic.TUserImpl">

<propertyname=“tUserDAO">

<refbean=“tUserDAO"/>

</property>

</bean>

</property>

</bean><beanid="baseTransactionProxy"class="erceptor.

TransactionProxyFactoryBean"abstract="true">

<propertyname="transactionManager"><refbean="transactionManager"/></property>

<propertyname="transactionAttributes">

<props>

<propkey="insert*">PROPAGATION_REQUIRED</prop>

<propkey="update*">PROPAGATION_REQUIRED</prop>

<propkey="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>事务管理三、Spring配置文件<beanid=“t34三、Spring配置文件(续)<beanid="tUserDAO"

class="com.nbw.sample.dao.hibernate.TUserDAO"

<propertyname="sessionFactory">

<reflocal="sessionFactory"/>

</property>

</bean><beanid="tUserManager"parent="baseTransactionProxy">

<propertyname="target">

<beanclass="com.nbw.sample.domain.logic.TUserImpl

">

<propertyname="tUserDAO

">

<refbean="tUserDAO"/>

</property>

</bean>

</property>

</bean>三、Spring配置文件(续)<beanid="tUse35数据持久层-DAO的使用publicclassTUserDAOextendsHibernateDaoSupportimplementsITUserDAO{publicListgetUsers(){ListuserList=getHibernateTemplate().find("fromTUser");//POtoVO ListvoUserList=newVector(); try{for(inti=0;i<userList.size();i++) {TUseranotherUser=newTUser(); BeanUtils.copyProperties(anotherUser,(TUser)userList.get(i)); voUserList.add(anotherUser);} } catch(Exceptionex) {ex.printStackTrace();} returnvoUserList;}}数据持久层-DAO的使用publicclassTUser36公共开发框架的结构与使用应用程序包结构及目录结构公共开发框架的结构与使用应用程序包结构及目录结构37数据访问对象包Hibernate实现包业务对象包

VO包业务逻辑包

控制层 action包,其目录下存放请求对应的Action类form包,其目录下存放各请求对应的ActionForm类 开发框架包,

提供开发框架所需类以及常用工具类

38jsp目录下存放Web应用的jsp文件JSP文件放在WEB-INF下可保证JSP页面的安全

39公共开发框架提供三个基类BaseAction类

BaseActionForm类

CommonException类公共开发框架提供三个基类BaseAction类40公共开发框架的使用-BaseAction类BaseAction类提供通用异常处理机制。BaseAction类的使用方法继承BaseAction类,实现doExecute()抽象方法。在doExecute()方法中编写请求处理代码。相关路径BaseAction类位于

mon包中公共开发框架的使用-BaseAction类41公共开发框架的使用-ActionForm类

BaseActionForm类对Struts的ActionForm的校验机制进行了封装。BaseActionForm提供两个常用校验方法1.校验字符串是否有空protectedvoidaddErrorIfStringEmpty

(ActionErrorserrors,StringmessageKey,Object[]messageArgs,Stringvalue)

公共开发框架的使用-ActionForm类

BaseAct42公共开发框架的使用-ActionForm类2.校验字符串与指定的正规表达式是否匹配:protectedvoidaddErrorIfStringNotMatch

(ActionErrorserrors,StringmessageKey,

Object[]messageArgs,Stringvalue,Stringregexp)BaseActionForm类的使用方法继承BaseActionForm,覆写它的doValidate()方法,在doValidate方法中实现自已的表单元素的校验,校验错误信息存入名为errors的参数中。校验过程中可使用BaseActionForm提供的两个常用校验方法。公共开发框架的使用-ActionForm类2.校验字符串与43公共开发框架的使用-ActionForm类校验错误信息的显示表单校验失败后,请求转发到该请求对应的JSP页面。如果JSP页面中有错误信息,则在JSP页面中使用Struts标志<html:errors/>,显示错误信息。相关路径

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论