《Java高级编程》节课作业.docx
- 文档编号:7806651
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:128.01KB
《Java高级编程》节课作业.docx
《《Java高级编程》节课作业.docx》由会员分享,可在线阅读,更多相关《《Java高级编程》节课作业.docx(16页珍藏版)》请在冰豆网上搜索。
《Java高级编程》节课作业
《Java高级编程》
结课大作业
题目:
分别谈谈你对Struts2、Hibernate和Spring框架的理解,并举例说明。
1、Struts2的理解:
Struts2这个框架,struts1是世界上第一个mvc框架,现在的MVC框架很多最著名的是Strutsspringmvc等Struts2的体系结构和struts1差别巨大,它明确的说它不是一个新的MVCweb框架,它不是从struts1升级过来的,它是基于webwork的xwork的,是xwork2的升级版,Struts2吸取了struts1和xwork2的两者的优点,Strus2是以webwork为核心。
所以struts2更加优秀的,更加整洁的MVC框架,采用拦截器的机制处理用户的请求这样的设计能够与原生的servletAPI完全脱离,在struts2中有一个核心类它就是StrutsPreparedAndExecuteFilterstruts2准备执行过滤器我们要想使用Struts2对用户的请求处理我们必须在web.xml中进行配置这个核心过滤器。
基本上是过滤所有请求的。
一般的Struts2框架的处理流程:
1、加载类StrutsPrepareAndExecuteFilter会执行准备操作执行操作
准备操作:
使用AcionMapper进行读取对URL进行映射,
执行操作:
会交给actionproxy来调用配置管理器,来读取struts.xml等读取完毕actionproxy交给第三者:
actionInvocation来递归调用一组拦截器,基本上就是我们使用的拦截器栈进行预处理操作
2、等预处理操作完毕之后,第三种进行调用我们的action和result在依次递归反向调用我们的那组拦截器进行后处理操作最后发出response给浏览器
2、hibernate的理解
hibernate是一个持久层框架,又是一个ORM框架,通俗的来讲就是一个对象关系映射框架。
使应用程序的持久化类到数据库中的表之间的关系的映射;hibernate其实就是是对jdbc的封装,减轻了程序员使用jdbc操作数据库的繁琐工作。
让程序员操作数据库关心的不再是数据库中的表而是我们的持久化对象javabean,比如:
进行保存操作的时候仅仅使用一个save()的方法,删除一条记录的时候仅仅调用delete()方法就能方便的完成对数据库中的数据的增加、删除操作。
使用Hibernate的基本的流程是配置Configuration对象,产生SessionFactory创建session对象,开启事务完成增加删除修改查询的操作提交事务关闭session在使用hibernate的时候要先配置hibernate.cfg.xml文件其中配置数据库连接信息和方言【不过这些固定的可以配置在hibernate.properties属性配置文件中,在应用程序启动的时候,会先加载src目录下的hibernate.properties再加载src目录下的hibernate.cfg.xml再加载对应的持久化配置映射文件*.hbm.xml等加载完成后开始创建sessionFactory】
3、对spring的理解
说起spring,spring实现了工厂模式的工厂类--beanFactory这是一个轻量级框架,其中在spring中包含有三个重要的技术IOC、DI、AOP。
IOC:
控制反转这个IOC是一种编程思想,也是一种架构的艺术,利用这个技术可以很好的实现模块与模块之间的解耦,耦合性降低。
如使用了Spring的IOC技术,对自己想使用的对象进行实例化的时候,不需要你自己进行new操作了,而是交给Spring容器帮你实例化对象。
那什么是DI呢?
其实IOC也成为DIDI是英文的缩写依赖注入这这个名词更能说明IOC的设计理念。
就是将服务注入到使用它的地方中,组件之间的依赖关系由容器在应用系统运行前来决定。
【依赖注入的方式一般分为4个:
通过gettter和setter方法进行注入,和通过构造函数进行注入通过对象工厂进行注入和通过静态工厂进行注入】。
AOP是面向切面编程,这解决了在整个系统中很多毫不相干的模块或者具体的类添加相同的功能,比如输出日志信息,权限设置,和事务管理等。
实现AOP功能就是实现了代理功能,对目标类进行代理,动态的代理可以分为两种:
jdk的动态代理和CGLIB的动态代理,它们之间的区别是,使用jdk的动态代理代理对象必须实现一个接口,而cglib没有必要,对字节码也可以动态代理了。
很强大不过我们一般在做应用程序的开发的时候面向接口的编程,减少类与类之间的耦合,所以我们用jdk的动态代理。
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。
一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。
框架通常能很好的解决一个问题。
然而,你的应用是分层的,可能每一个层都需要各自的框架。
仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI组件很好的耦合。
Struts2+Spring+Hibernate是J2EE的最新流行框架。
本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到
大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以我就决定总结一下我的搭建过程。
给一些搭
建尚存问题的朋友提供帮助。
我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。
目前版本暂定为1.0,除了CRUD外还配置了表单验证框架JSValidation。
功能都能很顺利的实现。
现在分享部分源码,来说明一些注意事项。
以下是部分搭建过程及源码:
1.先组合实现Hibernate3.2+Spring2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。
2.通过MyEclipse的向导方式,生成POJO类和对应的映射文件。
3.修改applicationContext.xml文件中
4.编写DAO接口和实现类。
5.修改applicationContext.xml文件,增加对Dao实现类的配置。
6.组合Struts2和Spring2.5,修改web.xml文件,增加struts2的所需要的过滤器配置。
7.增加struts2相应类库,增加struts2与spring的配置jar包。
8.拷贝struts.xml文件到src根目录下,再修改struts.xml文件,进行常量配置。
9.修改web.xml文件,配置Spring监听器,和上下文变量。
并增加OpenSessionInViewFilter的设置。
10.写入action类。
11.配置struts.xml文件。
12.修改applicationContext.xml
13.编写Jsp文件。
14.加载运行项目。
下面是关键文件的源码:
struts.xml源码:
xml version="1.0" encoding="UTF-8"?
>
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
-- struts2委托spring管理 -->
-- /crm/emp/add.action -->
-- Add actions here -->
web.xml源码:
xml version="1.0" encoding="UTF-8"?
>
xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=" -- 配置spring的监听器 --> -- 开启监听 --> org.springframework.web.context.ContextLoaderListener -- 配置OpenSessionInViewFilter,必须在struts2监听之前 --> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter -- 设置监听加载上下文 --> org.apache.struts2.dispatcher.FilterDispatcher
applicationContext.xml源码:
xml version="1.0" encoding="UTF-8"?
>
//www.springframework.org/schema/beans" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xmlns: aop="http: //www.springframework.org/schema/aop" xmlns: tx="http: //www.springframework.org/schema/tx" xsi: schemaLocation=" http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-2.5.xsd http: //www.springframework.org/schema/tx http: //www.springframework.org/schema/tx/spring-tx-2.0.xsd http: //www.springframework.org/schema/aop http: //www.springframework.org/schema/aop/spring-aop-2.0.xsd"> -- 配置Hibernate支持 --> class="mons.dbcp.BasicDataSource"> value="com.mysql.jdbc.Driver"> value="jdbc: mysql: //localhost: 3306/tables"> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> org.hibernate.dialect.MySQLDialect class="com.sy.crm.dao.hibernate.EmployeeDaoHibernate"> class="com.sy.crm.service.impl.EmployeeManagerImpl"> -- 事务管理器 --> class="org.springframework.orm.hibernate3.HibernateTransactionManager"> -- 配置事务特性,配置add,delete,update开始的方法,事务传播特性为required --> advice id="txAdvice" transaction-manager="transactionManager"> attributes> method name="add*" propagation="REQUIRED"/> method name="delete*" propagation="REQUIRED"/> method name="update*" propagation="REQUIRED"/> method name="*" read-only="true"/> attributes> advice> -- 配置那些类的方法进行事务管理,当前com.sy.crm.service包中的子包, 类中所有方法需要,还需要参考tx: advice的设置 --> config> pointcut id="allManagerMethod" expressi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java高级编程 Java 高级 编程 作业