• 容器


    webscope是一种容器技术
    何为容器2.1. 容器是什么
    容器是一种服务调用规范框架,J2EE大量运用了容器和组件技术来构建分层的企业级应用。在J2EE规范中,相应的有WEB Container和EJB Container等。

    WEB Container,给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP、SERVLET直接跟容器中的服务接口交互,不必关注 其它系统问题。WEB Container主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。比如,Resin 2.1.x以上版本提供的Servlet Container就实现了J2EE的Servlet 2.3规范。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
    WEB容器更多的是跟基于HTTP的请求打交道而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减 轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心 数据库连接速度、各种事务控制,直接由容器来完成。

    1.1. 容器的职责
    容器的职责因具体执行的服务调用规范的不同而有差别,比如Servlet Container只需实现Servlet 2.3规范。而Portlet Container,如Pluto,则需要具体实现基于JSR 168

    portlet 规范,具体的技术规范,比如需要实现基于容器级的事件处理机制Action Event、Message Event等。从水平的方向来看,通常容器提供系统级的服务调用。



    1.2. 容器与应用服务器
    容器是服务调用规范的具体实现,比如EJB Container是对EJB 2.0规范的实现。然而,实现只是衡量规范的执行程度,通常容器是由应用服务器来具体执行,从这个层面来说,应用服务器又可以称之为容器的容器。



    1.3. 容器与IOC原则
    IOC,Inversion Of Control,即倒置控制,IOC自面向对象诞生起就存在,并不是最新技术,象SRP、OCP和DIP等面向对象的基本法则一样。Inversion Of Control,这个短语是由Brian Foote在他的一篇论文中最先使用的(http://www.laputan.org/drc/drc.html)。组件所需的一切通过Contexts、Configurations和Loggers的方式赋予组件。

    在组件容器中,组件不需要实现或扩展(不依赖)容器类和接口,由容器在组件需要时提供其它依赖组件实例。反例:EJB其中的EJB组件需要实现几个接口,需要用JNDI或全局注册表得到其它EJB实例。

    IOC,实现了组件与容器间的解耦,意味着在开发组件时同样可以采用从上至下的方法。不需要建立一个注册类,客户端必须调用此注册类才能获得组件实例。

    传统上,如果实现一个组件服务你可能采取如下相似的步骤:



    Write the component (如 an UserAuthenticateService)

    Write the client class (如an Login action)

    Write a registry class that holds the component object (如Registry)

    Write code that gives the component object to the registry (如

    Registry.registerService(new UserAuthenticateService ());)

    Use the registry to obtain the service from your client class (如UserAuthenticateService uas = Registry.get UserAuthenticateService ();)

    Make calls to the component from the client class (如Boolean st = uas.authenticate(user,pass);)







    如果使用IOC,则过程可以宿减到如下:



    Write the component class (如 an UserAuthenticateService)

    · Register the component class with Login (如 componentManager.register(MyUserAuthenticateService,AuthenticateService);)

    · Write the client class, making sure it implements the enabling interface (如 an Login action that implements AuthenticateService)

    · Access the component instance directly from your client action (如 String baseCurencyCode = ers. authenticate (user,pass);)

    参考资料:http://webscope.blogdriver.com/webscope/158291.html
  • 相关阅读:
    curl上传图片文件
    手工制作简单后台模板
    首页自动生成静态化html
    svn-多个项目版本库和自动同步更新post-commit
    Snoopy+phpquery采集demo
    phpstorm使用手册
    mac系统使用帮助
    upupw一键绿色免安装环境包
    去掉文件夹的.svn文件
    centos安装svn服务器
  • 原文地址:https://www.cnblogs.com/baoguo/p/1395907.html
Copyright © 2020-2023  润新知