Spring是J2EE标准中的一个重要架构,它能有效的组织J2ee各应用层的对象。
在SSH中,Struts主要负责前面客户端提交表单的处理,Spring负责对主要业务的控制管理,Hibernate在最后边,负责数据的持久化,即描述的是POJO与数据库表的关系,尊从ORM模型。
依赖注入和控制反转是同一个概念,在传统程序实际中,调用者想要调用另一个对象需要自己创建被调用者的实例,在Spring中,创建被调用者的工作由Spring容器完成。当调用者需要的时候注入给调用者。
依赖注入有两种:设值注入和构造注入。
设值注入通过setter方法传入被调用者的实例,这种方式在Spring和SCA的配置文件中被大量使用。
在实现类中有如下的定义:
public class chinese implements Person{
private knife knife;
public chinese(){}
//设置注入所需的setter方法
public void setknife()
{
this.knife=knife;
}
//实现Person接口中的useknife()方法
public void useknife(){
System.out.println(knife.chop());
}
}
//Spring配置文件定义beans部分的主要内容
<beans>
<bean class=com.zy.chinese//实现类所在的路径,即在哪个包下面 id=chinese>
<property name="knife">
<REF local=""stoneknife"/">//stoneknife是knife接口的一个具体实现类
</bean>
<bean class=com.zy.stoneknife id=stoneknife/>
<beans>
//对比SCA架构配置组建的配置文件.composite
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
xmlns:c="http://wsTuscany"
targetNamespace="http://wsTuscany"
name="wsTuscany">
<component name="ClientImpl">
<implementation.java class="com.zy.wsTuscanyClient.Client"/>
</component>
<reference name="hello" promote="ClientImpl/hello" target="wsTuscanyHello">
<interface.java interface="com.zy.services.HelloInterface" />
<binding.ws url="http://localhost:8080/axis2/services/HelloZY" wsdlElement="http://services.zy.com/#wsdl.port(HelloInterface/HelloInterfacePort)"/>
</reference>
</composite>
SCA架构中管理的对象是组件,组件可以是本地的一个POJO普通实现类,也可以是外部的ws,本地的组件可以包装成ws供外部调用。
可以看到.composite文件中是由一个个的<compoment>对组成的,spring.xml配置文件中的标签是<bean>,配置文件中的配置规则实际是一样的,她们都是管理框架,只是配置对象的粒度不同。
普通的java bean相当于微软COM模型中的本地进程内的com组件,它是不能被跨进程访问的。EJB相当于DCOM,即分布式
组件。它是基于java的远程防范调用(RMI)技术的,所以EJB可以被远程访问(跨进程,跨计算机)。EJB是一组基于分布式事务处理的企
业级应用组件,但EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。
容器是一种能够为某种运行对象提供运行环境支持的地方(其实也就是服务器的概念),web 容器或者叫web服务器主要是为jsp或servlet提供运行环境支持的,现在符合j2ee标准的EJB被部署在WebSpere、WebLogic这样的容器中。客户访问EJB通常不直接访问而是通过它的代理,即EJB容器去访问。这也符合SCA组件架构模式。基于组件模式的架构都需要一个容器来管理各个组件,在SCA型中这个容器对象就是SCA Domain域。
Spring是j2ee规范中最轻量级的容器其次是EJB容器再次是SCA域
分享到:
相关推荐
在第二天的Web架构课程中,你可能将接触到EJB的生命周期、事务管理以及它们如何与JPA(Java Persistence API)和JMS(Java Message Service)集成。 在实际项目中,Structs、Spring和EJB常常被结合起来使用,以实现...
Spring 和 EJB3 是两种在企业级 Java 应用开发中广泛使用的框架。Spring 框架以其轻量级、模块化和灵活的设计而闻名,而 EJB3(Enterprise JavaBeans 3)则是 Java EE(现在称为Jakarta EE)平台的一部分,提供了...
3. **Spring与ejb的协作**:在某些场景下,会话bean可能只负责协调工作,而具体的业务逻辑由Spring的bean来执行。这种方式可以将 ejb 的强健性与 Spring 的易用性结合在一起。 **CommonEjbProj项目概述** ...
Spring 集成 EJB(Enterprise JavaBeans)是将轻量级的 Spring 框架与企业级的 EJB 3.x 技术相结合的一种方式,以实现更灵活且高效的企业应用开发。Spring 提供了一个丰富的IoC(Inversion of Control,控制反转)和...
【实战角度比较EJB2和EJB3的架构异同】 EJB,即Enterprise JavaBeans,是Java EE(企业版Java)平台的核心组件之一,用于构建可复用、分布式的服务器端应用程序。EJB2和EJB3是EJB技术的两个主要版本,它们在架构上...
EJB2.0和EJB3.0是两个重要的版本,它们在架构上有显著的不同,主要体现在编程模型的简化、实体Bean的替换以及拦截器的引入。 在EJB2.0中,一个EJB通常包含三个类:一个接口(Home Interface)、一个远程接口...
**SOA标准与SCA架构详解** 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,它强调将业务功能分解为独立的服务,这些服务可以通过网络进行交互,实现松耦合和重用。SOA...
根据提供的文件信息,我们可以深入探讨Spring与EJB(Enterprise JavaBeans)配置的相关知识点。 ### Spring EJB 配置概述 Spring框架提供了强大的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-...
Struts2、Spring和EJB3是Java Web开发中的三个重要框架,它们分别在MVC模式、依赖注入和企业级服务方面发挥着关键作用。这个压缩包提供的源代码是一个完整的项目示例,展示了如何将这三个框架集成到一个应用程序中。...
SCA 支持多种不同的绑定类型,如 SCA 服务、Web 服务、Stateless Session EJB、Database Stored Procedure 和 EIS 服务等。SCA 还提供了一个扩展机制,允许添加对新的绑定类型的支持。 构件(Component) 构件是 ...
Struts 2、Spring 和 EJB 是 Java Web 开发中的三个关键框架,它们共同构建了一个强大的客户端应用程序架构。本文将深入探讨这三个框架如何协同工作,以及它们各自在企业级开发中的角色。 首先,Struts 2 是一个...
#### 四、Spring与EJB的关键差异 ##### 4.1 XML配置 vs 注解 Spring 早期主要依赖于XML配置文件来定义和管理bean之间的依赖关系。这种方式虽然提供了强大的配置能力,但对于简单的应用场景而言,显得较为繁琐。...
在IT行业中,Hibernate、Spring、EJB(Enterprise JavaBeans)和Ajax是四个非常重要的技术,它们各自在软件开发的不同方面发挥着关键作用。下面将分别详细介绍这些技术,并探讨它们之间的协同工作方式。 **...
EJB完美架构 EJB 3.0的入门开发教程-使用Eclipse、JBoss JDK 1.6.0 Eclipse IDE for Java EE Developer 3.3 JBoss 4.2.2 GA
【ejb3+spring+struts实现简单银行系统】 在Java开发领域,EJB(Enterprise JavaBeans)3、Spring框架和Struts框架是常见的企业级应用开发技术,它们结合使用可以构建高效、可扩展的Web应用程序,特别是对于复杂的...
【 ejb struts 多层架构例子 】详解 在Java Web开发中,EJB(Enterprise JavaBeans)和Struts是两种重要的技术,常被用于构建企业级的、基于模型-视图-控制器(MVC)架构的应用程序。本例子以“网上银行系统”为...
作为轻量级的容器,Spring常常被认为是EJB的替代品。我们也相信,对于很多 (不一定是绝大多数)应用和用例,相对于通过EJB容器来实现相同的功能而言, Sping作为容器,加上它在事务,ORM和JDBC存取这些领域中丰富的...
**Spring与EJB 3的集成优势** 1. **松耦合**:Spring通过依赖注入(DI)提供松耦合,EJB 3通过注解驱动的编程也实现了这一目标。两者结合,可以让开发者更方便地管理组件间的依赖关系。 2. **简化开发**:EJB 3降低...