j2ee,ejb,spring,struct,turbine,hibernate关系

 sturct是一个遵循mvc模式框架得一个具体解决方案,它在MVC模式中作为一个很好的控制器,又很好用。但是表现和业务则可以用其他来完成 。其他具体框架可以和他组合使用。

hibernate是一个持久层中间件,O/R   Mapping   (对象关系映射框架),,它也可以和其他框架组合使用。而DAO框架,用于数据存取,类似于工厂模式。O/R   Mapping   (对象关系映射框架)其远比DAO的思想复杂.可以实现Hibernate模板存取数据,作为Dao接口的一种实现方式.

j2ee是一系列标准,很多具体框架标准(ejb,spring,struct,jsp,servlet等等),都用来支持它。ejb和spring主要支持j2ee得业务层,而struts,jsp,servlet主要支持web层。它还有些其他得框架用来支持其他层。(j2ee没有spring,j2ee标准就是主要针对ejb技术的,ejb和spirng都是一个业务层框架,一个具体应用在选择自己的业务层时可以根据具体轻重量级情况选择使用哪个框架,但若使用j2ee标准的话,就要使用ejb,而spring应该也遵循了部分j2ee的标准)

而jboss,weblogic,websphere等是应用服务器,它们实现了j2ee得一系列标准,并根据自己得特点实现了具体得某些j2ee得api,对于这些服务器他们还支持其他的标准,以及其他各个层次的框架,如spring,hibernate等。

而j2ee整个工程,其实是分为一些通用功能(例如事务机制、安全机制以及对象池或线程池等性能优化机制)和专业功能(具体得商业逻辑),这些通用功能就由j2ee容器完成(基于aop的思想),而专用功能则由编程人员根据某一规范来完成。业务层容器可以有多种,如ejb容器(j2ee,重量级),spring容易(轻量级),spring容易不支持集群分布式功能。他们都是由应用服务器提供得。所以说jboss,weblogic,websphere等是应用服务器它应该是一个,集成了j2ee的一些api得特定实现和应用服务器功能实现得一个混合体。我们通常仅提到它得应用服务器得功能实现,不太提起它得j2ee得一些api得特定实现。

j2ee是一系列标准,满足他的工程都分为三层,表示层(web层),业务层,数据资源层。j2ee的各种标准都是针对各个层的,有的是这层有的是其他层的。而他没层都有相对独立的实现。例如,在实现web层中我们可以使用比较基础的jsp,servlet或是一些基于这些基础的半成品框架,如struct等等其他web框架。而在业务层中我们可以根据需要选择合适的ejb或是spring等业务层框架,(有的ejb是轻型的,有的ejb是重型的,spring则是轻型的)。而数据资源层,通常是数据库,这时我们可以选用比较基本的jdbc或是基于它的框架如hibernate等等。j2ee是基于组件的各个层里的实现,他利用框架产生的各个具体代码,都是它的组件是可复用的。(这种三层结构只是一个简单的应用系统,它可以采用j2ee标准来实现,也可以不使用任何公用标准,而是自己模糊认识的一种标准,也可以在任意一层不使用任何框架,而是用各种基础java相关技术来完成,对于一个j2ee框架,它一般分三层,客户端,服务器端,eis端,服务器端是我们开发的重点,它包括web层,业务层,而业务层包括业务数据域-实体bean-实体bean采用域主动方式访问数据,它的bmp可以使用持久层框架,或是采用基础java技术实现,cmp是服务器实现对象关系映射,而业务过程域-会话bean,它负责开发j2ee环境下的业务,对于部分业务放在非j2ee环境中如eis等,我们可以通过jca,jms,web servies来访问,如果是普通bean访问的话就算j2ee环境下的业务了,但是普通bean通常做的业务操作比较简单,复杂的需要其他资源支持的通常要在非j2ee环境下实现或是已经实现了并且在非j2ee环境下,现在要集成,而对于这种情况我们根据同步异步来具体选择使用jca,j'ms,web services哪个来完成。

而象turbine它是一个轻量级web应用完全框架(注意它不是web框架,它包括mvc的全部,而structs这种web框架仅仅有vc,它的m是由其他来实现的如bean,ejb,spring等)它不是j2ee,它不满足j2ee的标准。在j2ee可能包括分布式处理等等,而turbine'没有,它仅仅是一个简单的web应用,它不满足j2ee的标准。此外由ststruts+spring+hibernate不是j2ee,它是一个轻量级的具体应用,而structs+bean则更不是j2ee,更轻量级的应用。

 2、EJB与JAVA BEAN的区别?

  答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值