版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年磺胺类药物投资申请报告
- 2020年一级造价工程师考试《建设工程技术与计量(水利工程)》真题及答案
- 消防工作总结报告筹划与实施方案及成效评估
- 公司团队协作总结
- 2022届初中物理电和磁基础知识题库
- 公司品牌总结
- 肠梗阻教学查房
- 生鲜超市工作计划(22篇)
- 班务工作总结大班上学期大全(13篇)
- 物业公司半年工作总结 物业公司半年工作总结结尾(九篇)
- DB2302-T 072-2024赤松茸(大球盖菇)林下生产技术操作规程
- 【功能性乳品企业天润乳业企业存货管理问题研究(论文9300字)】
- 试验室安全用电知识讲座
- 驻村干部安全知识讲座
- 单位租房管理制度
- 第7课《珍视亲情+学会感恩》第1框《浓浓亲情+相伴一生》【中职专用】《心理健康与职业生涯》(高教版2023基础模块)
- 新能源汽车项目招商引资方案
- 局部通风机停电停风应急救援预案及措施5篇汇编
- 2024届山东济南市历下区重点中学中考二模生物试题含解析
- 实验室体系培训考试试题
- 个人科研简历模板
评论
0/150
提交评论