三大框架的理解

1.谈谈struts的理解

 1.struts是一个按mvc模式设计的web框架,其实他就是一个大大的servlet,这个Actionservlet,我们就可以在web.xml中将符合某种特征的所有请求交给这个servlet处理,这个servlet在参照一个配置文件(通常就是struts-config.xml)中,将各个请求分别分配我不同的action处理

一个扩展知识点,struts的配置文件,可以按模块配置各自的配置文件,这个可以防止配置文件的过度膨胀

2.actionServlet把请求交给action去处理之前,会将请求参数封装一个forbean对象(就是一个java类,这个类中,这个类中每个属性对应一个请求参数)

3.要说明的是,actionservlet把formbean对象传递给action的exceute方法之前,可能会调用frombean的validata方法进行教育

只有校验之后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input页面(这个要看你的配置文件)

4.action执行完要返回显示的结果视图,这个结果视图就是用一个actionforward对象来表示,actionforward对象通过struts-config.xml配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样就可以实现action程序代码与返回的jsp页面名称的解耦

二.谈谈你对hibernate的理解

1.面向对象设计的软件内部运行过程可以理解成就是在不断创建新对象,创建对象之关系

调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序生一个时刻和下一个时刻的运行加过的差异就表现在内存中的对象状态发生了变化

2,为了在关机和内存空间不够的情况下,保持程序的运行状态,需要将内存中的对象状态保持到持久化设备和从持久化设备中恢复出对象的状态,通常都是保持到关系数据库来保持大量对象信息,从java程序的运行功能上来讲,保存对象状态的功能相比比系统运行的其他功能来说,应该是一个很不起眼的附属功能,java采用jdbc来实现这个功能,这个不起眼的功能却要编写大量的代码,而做的事情仅仅是保存对象和恢复对象,并且那些大量的jdbc代码并没有什么技术含量,基本上是采用一套例行公事的标准代码模板来编写,是一种苦活和重复性的工作

3.通过数据库保存java程序运行时产生的对象和恢复对象,其实就是实现了java对象与关系数据库记录的映射关系,称为orm

人们可以通过封装jdbc 代码来实现这种功能,封装出来的产品称之为orm框架,hibernate就是其中一种流行的orm框架,使用hibernate框架,不用写jdbc代码,仅仅是调用一个save方法,就可以将对象保存到数据库中仅仅调用一个get方法,就可以从数据库中加载出一个对象

4.使用hibernate的基本流程是:配置configurnate对象,产生sessionfactory,创建session对象,启动事务,完成crud操作,提交事务,关闭session

5.在应用hibernate时,重点了解session的缓存原理,hql查询,级联,延迟查询、

三.spring的理解

1.spring实现了工厂模式的工厂类,这个类名为 beanfactory(实际上就是一个接口)在程序中通常beanfactory的子类applicationContact

spring相对于一个大的工厂类,在其配置文件中通过bean元素用于创建实例对象的类名和实例对象的属性

2.spring提供了对IOC良好的支持,IOC是一种编程思想,是一种架构艺术,利用这种思想就可以很好实现模块之间的解耦.ittoc

也称DI 比如

public void setConputer(cpmputer computer){

this.computer=computer;

}

这种事目标与工厂的解耦,在spring的配置文件中的配置片段如下

<bean id="computer" class="cn.com.gao.web.Computer"></bean>

<bean id="programmer" class="cn.com.gao.web.Programmer">

<property name="computer" ref="computer"></property>

三 .spring提供了对aop技术的良好的封装,aop面向切面编程,就是系统中有很多各不相同的类的方法,在这些方法中加入某种

系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为aop。实现aop功能采用的就是代理技术,客户端不再调用目标,而是调用代理类,spring提供了这种支持,只需要在spring的配置文件中配置这2个元素即可i实现代理1和aop功能

例如,

<!-- 定义一个切面 声明切入点-->
<aop:config>
<aop:advisor
pointcut="execution(* com.zhirong.house.service.*Service.*(..))"
advice-ref="txAdvice" />
</aop:config>


<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="find*" read-only="true" />
<tx:method name="load*" read-only="true" />
<tx:method name="*" rollback-for="Exception" />
</tx:attributes>
</tx:advice>



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值