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域
分享到:
相关推荐
spring与ejb.pdf 详细讲述spring 与ejb
java最新面试题 java struts servlet spring ejb
EJB2和EJB3的架构异同?详细讲解 EJB编程模型的简化 JPA替代实体Bean 拦截器概念
struct ,spring,ejb架构原理培训以及相关源码,程秀野
spring ejb configuration
EJB3.0和Spring比较
spring集成ejb
spring和EJB3的一些包,包括文档,基本上是英文的
struts2+spring+ejb3源代码(完整版)
EJB完美架构 EJB 3.0的入门开发教程-使用Eclipse、JBoss JDK 1.6.0 Eclipse IDE for Java EE Developer 3.3 JBoss 4.2.2 GA
作为轻量级的容器,Spring常常被认为是EJB的替代品。我们也相信,对于很多 (不一定是绝大多数)应用和用例,相对于通过EJB容器来实现相同的功能而言, Sping作为容器,加上它在事务,ORM和JDBC存取这些领域中丰富的...
这个demo,实现了ejb+spring的集合。ejb主要是消息驱动bean和会话bean。
Hibernate+Spring+EJB+Ajax-关于这四种技术的详细讲解。全面、易懂。
EJB完美架构、简单开发(EJB 3[1].0开发演示)
ajax、spring、ejb试题 选择题和简答题。
包括C++ Oracle jsp JDBC Hibernate Servlet Spring ejb Core Java
EJB完美架构、简单开发(EJB 3.0开发演示).pps 博文链接:https://frankiehuang.iteye.com/blog/145121
ejb3+spring+struts实现简单银行系统
EJB 编程及 J2EE 系统架构和设计