开发主流框架有哪些优缺点?
在进行软件开发的过程中,了解软件开发的主流框架是非常重要的,主流框架主要有哪些呢?Hibernate、Struts和Spring是现在使用最主流的三种框架,很多人对软件开发框架的了解非常少,在开发过程中不知道应该选择哪种框架进行使用,这三种框架有哪些优缺点呢?下面电脑培训为大家介绍这三种主流框架的优缺点。一、HibernateHibernate书属于一种开放源代码的对象关系映射框架,在使用过程中,它能够对JDBC进行对象封装,让程序员在开发过程中进行随心所欲的使用对象编程。优点:Hibernate使用能够起到Java的反射机制,并不是使用字节码程序进行使用的。在使用过程中具有很好的性能,并且还是一个轻量级的框架程序,有很好的灵活性。Hibernate能支持很多种关系数据库,能够处理一对一和多对多的各种关系。缺点:Hibernate在使用过程中受限于所使用的对象模型,它所独有的界面和市场范围是非常不稳定的,并且在使用过程中,IT培训认为它所具有的强大发展动力能够减少这些风险。一般情况下,它所具有的开源持久性框架只有一些,市场冲击力并不大。二、StrutsStruts框架具有很好的组件模块性,在使用过程中有很好的灵活性和重用性,在使用过程中主要基于MVC的web程序开发。优点:像许多Apache项目一样,如Tomcat和Turbine,Struts是一个开源软件,这是一个很大的优势。很多开发人员能够更深入地了解其内部实现机制。如果是考虑页面导航,那么昌平镇北大青鸟认为这是一种以后的发展方向,这样的方法对于后期的维护有着非常大的好处。缺点:在进行学习的过程中,很多人都知道Taglib是Struts使用中的一大优势,对于初学者来说,这并不是最好的选择,因为在学习开发的时候,这是一个持续学习的过程。如果是没有经验的初学者,在使用过程中会被打乱自己编写代码的习惯,要是能够熟悉这种编程方法,对后续的学习有很大的帮助。三、Spring这是一个很好的开源项目,在使用过程中非常的活跃,能够和IoC、AOP的框架结构结合使用,这种框架不需要在每一层进行使用,它的模块化是非常好的,使用的时候可以选择任何一个模块进行使用,并且能够实现MVC,对于数据能够提供统一的接口。优点:无论您是否选择使用EJB,Spring都可以有效地组织您的中间层对象。Spring消除了在许多项目中常见的Singleton的过度使用。北大青鸟昌平镇计算机学院认为这是一个非常严重的问题,会降低系统的可测试性和面向对象的程度。缺点:这种框架的使用并不是很多,很多人不会选择,在使用在JSP中需要写很多的代码,并且控制器过于灵活,在使用过程中缺少公用控制器。
开发主流框架有哪些优缺点?
在进行软件开发的过程中,了解软件开发的主流框架是非常重要的,主流框架主要有哪些呢?Hibernate、Struts和Spring是现在使用最主流的三种框架,很多人对软件开发框架的了解非常少,在开发过程中不知道应该选择哪种框架进行使用,这三种框架有哪些优缺点呢?下面电脑培训为大家介绍这三种主流框架的优缺点。一、HibernateHibernate书属于一种开放源代码的对象关系映射框架,在使用过程中,它能够对JDBC进行对象封装,让程序员在开发过程中进行随心所欲的使用对象编程。优点:Hibernate使用能够起到Java的反射机制,并不是使用字节码程序进行使用的。在使用过程中具有很好的性能,并且还是一个轻量级的框架程序,有很好的灵活性。Hibernate能支持很多种关系数据库,能够处理一对一和多对多的各种关系。缺点:Hibernate在使用过程中受限于所使用的对象模型,它所独有的界面和市场范围是非常不稳定的,并且在使用过程中,IT培训认为它所具有的强大发展动力能够减少这些风险。一般情况下,它所具有的开源持久性框架只有一些,市场冲击力并不大。二、StrutsStruts框架具有很好的组件模块性,在使用过程中有很好的灵活性和重用性,在使用过程中主要基于MVC的web程序开发。优点:像许多Apache项目一样,如Tomcat和Turbine,Struts是一个开源软件,这是一个很大的优势。很多开发人员能够更深入地了解其内部实现机制。如果是考虑页面导航,那么南邵北大青鸟认为这是一种以后的发展方向,这样的方法对于后期的维护有着非常大的好处。缺点:在进行学习的过程中,很多人都知道Taglib是Struts使用中的一大优势,对于初学者来说,这并不是最好的选择,因为在学习开发的时候,这是一个持续学习的过程。如果是没有经验的初学者,在使用过程中会被打乱自己编写代码的习惯,要是能够熟悉这种编程方法,对后续的学习有很大的帮助。三、Spring这是一个很好的开源项目,在使用过程中非常的活跃,能够和IoC、AOP的框架结构结合使用,这种框架不需要在每一层进行使用,它的模块化是非常好的,使用的时候可以选择任何一个模块进行使用,并且能够实现MVC,对于数据能够提供统一的接口。优点:无论您是否选择使用EJB,Spring都可以有效地组织您的中间层对象。Spring消除了在许多项目中常见的Singleton的过度使用。北大青鸟南邵计算机学院认为这是一个非常严重的问题,会降低系统的可测试性和面向对象的程度。缺点:这种框架的使用并不是很多,很多人不会选择,在使用在JSP中需要写很多的代码,并且控制器过于灵活,在使用过程中缺少公用控制器。
请问Struts2,Hibernate和Spring之间的框架整合关系是怎么弄的
记得给我分,谢谢我给你理清一下思路吧,纯手工:1.首先你要认清,hibernate和struts没有半点关系,所以他们之间没有任何可以整合的东西。有的教科书,参考书上那么写,其实是胡扯,因为:a:struts作为中心控制器,肯定要调用一些类来完成一些逻辑。而hibernate开发中,经常使用的dao,service对他的封装,就算是jdbc也需要,根本不是hibernate的特性,struts的action使用的dao,service也就因此不能代表和hibernate进行整合,所以他们2个没关系。2,spring 有很多功能,对与配置来说。我仅仅说下他的对bean的管理,这么说吧,他就是一个可以把任何java类都管理起来的框架。这样一来hibernate和struts的功能的java类,肯定也可以被他管理了,也就是说 javabean,pojo,dao,service,action,factory,util都可以被spring管理,进行spring容器对其的创建和销毁,但是具体怎么配置他,这个你自己去学吧。反正spring就是管理bean,生成他们的实例。不论是hibernate的还是struts的,所用的方式就是添加好jar包,写applicationContent.xml文件。于是乎spring 跟hibernate struts的关系其实就是跟普通java类的关系一样。xml配置他们。但是spring提供了更多的特性,比如ioc,aop,事务管理等,这个你再去学吧。3,struts,还是中心控制流程,只不过呢,他的action如果在spring中被配置了,或者管理起来了,他们的实例的生成由spring容器来实现,所以呢struts还是自己,没有改变。对与struts2,他是1改变了很多,其实是webwork开源框架修改而来的,技术架构已经脱离了struts1.4,spring与hibernate关系,spring重点配置的地方,看似都跟hibernate相关,如javabean,service,dao,但跟hibernate只是一层配置管理的关系,跟hibernate的业务逻辑,生成,取数据没有半点关系。hibernate 对数据库的 ormapping映射没有变。手写的,分给我,谢谢
告诉我Hibernate,Struts,Spring这个三个框架在JAVA项目中各自功能与优点,他们之间的联系是什么?
Hibernate不用说了ORM的典型代表,主要功能就是对数据进行持久化,虽然SUN的标准是JDO,但是Hibernate确是使用最广泛的。优点是:在Java里面,我们可以直接通过JDBC来访问数据库,而且运行效率高,但是却要在Java代码中嵌套大量的SQL语句,使后期的维护困难,而Hibernate对JDBC进行的轻量级的封装,使用方便简单,并且支持多种WEB服务器和数据库,可用于Java项目或WEB项目。
Struts是实现的MVC即Model2的框架。他的有点在于能够加快项目的开发速度。可以解决WEB应用中的:页面导航管理,输入信息验证,一致布局,扩展性等问题。而且所有业务逻辑都使用Action的类完成,就避免了在JSP页面里面嵌入Java代码。并且Struts还提供了Struts的标签库,这些标签库包含了常用功能,可以尽量避免自定义标签库。(但是我觉得这些标签库的作用不是很大,因为这些标签库里面的一些功能JSTL已经就实现了,而且做的更好)适用于WEB项目。
Spring是一个轻量级的IOC和AOP框架。特点就是:轻量级,反向控制,面向切面,容器,框架。
并且通过AOP可以对事务进行很好的管理,而且支持Hibernate和Struts等多种ORM和WEB框架。
适用于Java项目和WEB项目。
关于struts2,hibernate2,spring3,面试时让我说下这三大框架的工作原理,东西太多了,应该侧重说哪些东西
先总体说说它们3个代表MVC开发模式中的哪一层..
struts2代表控制层,hibernate数据持久层,spring相当于容器,可以整合struts2,hibernate。
并且spring的aop可以在service层实现事物控制.
然后分别细说
先说struts2
struts2提供了众多拦截器,页面提交的参数会经过默认的18个拦截器的过滤...最终能把页面提交的参数自动转换成需要的类型.
能自定义拦截器,实现aop编程,实现如权限拦截等功能,
数据校验,能对指定方法校验,支持xml校验.
能实现国际化.
支持多种表现层技术,如:JSP、freeMarker、Velocity等
支持ajax,
模型驱动,能把参数封装到模型驱动里,模型驱动会把对象放置到栈顶,在页面通过ognl表达式,能够回显数据.
如果你对值栈了解很透彻的话...这里可以继续吹下去..比如OgnlValueStack 类包含两个重要的属性 一个root和一个context。
root实际上是一个ArrayList,root保存着调用Action的实例,
context是一个Map,context中又有一个默认顶层对象_root,它是属性root的复制,在页面访问它是不需要加#号的...后面可以继续..我懒得打了..
其它的比如Token令牌啊,怎么防止表单重复提交.....争取吹个半小时..如果面试官还没让你听的话
Ok
继续hibernate
hibernate是ORM框架,它对jdbc进行了封装,在分层结构中处于持久化层,
它能建立面向对象的域模型和关系数据模型之间的映射.
它大大简化了dao层的编码工作
然后就说说session中的缓存和快照表
也可以说说get和load获得方法有什么区别
在说说二级缓存...它是SessionFactory级别的缓存.是进程范围的..他有内置和外置..二级缓存就是指外置的....分别有4个...集合缓存,时间戳缓存..查询缓存..类级别的缓存....一般用于很少被修改的数据..允许偶尔的并发问题
...在其它的吹了那么几下.....什么?还没让你停?
ok
继续sping
这里先说说什么是IOC..DI..可以xml实现..也能注解...我一般都是用注解.
然后就重点说说aop就行了....什么切面.连接点...切入点.目标对象..通知...织入啊...拿个自己了解的吹吧..
在说说用aop怎么实现事物控制...
还没让你停?
就说说ssh整合吧.
.....打了...半个多小时...楼主你懂的....