什么是容器?
JavaEE原话:“Containers are the interface between a component and the low-level platform-specific functionality that supports the component. ”
翻译过来就是“容器就是底层的、与支撑平台相关的、对组件进行功能化支持的接口”。
难以理解?
通俗的解释就是,容器是一系列为了实现分层的概念而定义的一系列功能的平台无关的标准。它的主要用处就是平台无关性和底层操作封装性(Java的核心哲学)。
说白了,容器就是Java的核心哲学在企业级应用范围内的具体实现。
那么使用容器,能给我们带来多大的好处呢?
强制性分层:通过Java的接口定义机制和强类型编译器的支持,在底层就实现了分层的概念。即使顶层的实现十分没有经验,底层的分层还是可以辨认的。
底层操作封装:以服务端应用服务器为中心的三层企业开发涉及到的技术相当麻烦和复杂,但是之间又有相当多的共性,所以进行有效的底层次的封装是可行的而且是有必要的。这样开发人员的工作就可以建立在一个稳固的基础上,而不是靠自己的经验去应对这些问题。
平台无关性:这个也是Java的核心哲学,至于好处吗,我就不多说了
代码的重用可能性提高:记住,是可能性。具体的重用性要看开发的方式和开发后代码的质量。
就JavaEE而言,它的标准里面只有WEB容器和EJB容器,这两个容器已经充分体现了它们的概念。
但是,还有一种概念上的容器,它的概念与上述概念不同,所以被称作轻量级容器。
首先,轻量级容器不是接口的抽象,没有JavaEE概念中的部署和移除,从概念上说轻量级容器就是一个拥有IOC支持的Bean工厂。
从形象的角度上来看,轻量级容器是一个盒子,盒子里面装满了贴有标签的JavaBean,对外界而言,它是一个魔盒,只要给它一个咒语(咒语必须正确),它就能给你一个礼物。
轻量级容器目前而言没,有相应的标准,但是它的使用范围却比真正的JavaEE标准要宽泛得多(谁不喜欢礼物呢?)。
首先,它是一个非常好的JavaBean工厂(谁没用过工厂模式?)
其次,它能够给你的代码带来IOC支持(懒人最喜欢的生活方式莫过于东西自己来找它)
再次,一般来说,轻量级容器都可以通过动态代理和字节码增强的方式提供AOP的支持
总而言之,轻量级容器是JavaEE容器概念的一种有力补充,它的用法更加灵活,适用的范围更广,从目前的经验上看,开发、测试和管理起来也要比标准容器对象开发起来简单。
轻量级容器一般不会给你提供分布式和集群的支持,因为它的优点就是灵活而不笨重。
轻量级容器就像作汉堡的那两块面包,你想吃什么就往里夹,但是汉堡好吃不好吃,主要就在你放进去的东西和搭配的手艺。
轻量级容器不能强制的要求你分层
轻量级容器的底层封装一般以模块加载进容器的方式实现。
有的人不爱吃汉堡。
总体评价:
容器是Java的核心哲学的体现,而轻量级容器则是工程师开发文化的体现,它可以很灵活的帮助你,对你没有什么具体的要求。二者不会出现谁替代谁的情况。具体的使用方式,还得看你在设计时所处的情况。
更正一下:就JavaEE而言,它的标准里面只有WEB容器和EJB容器是对它的服务端而言的。客户端还有Application Container和Applet Container两个容器。
分享到:
相关推荐
基于容器的轻量级工业控制系统网络安全测试床研究.pdf
标题:“Spring轻量级与EJB重量级容器的比较” 描述:“我自己做的第一个文档” ...综上所述,Spring轻量级容器与EJB重量级容器各有千秋,开发者应根据项目特性和需求灵活选择,以达到最佳的开发效率和应用性能。
今天,我们将介绍 Swing 中的重量级容器和轻量级容器,并探讨它们的实例用法。 重量级容器 在 Swing 中,重量级容器是指那些具有自己的窗口装饰和边框的容器,例如 JFrame、JDialog 和 JApplet。这些容器具有自己...
Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...
"轻量级虚拟化容器技术介绍" 本文将对轻量级虚拟化容器技术进行介绍,涵盖容器简述、J2EE 容器、OpenVZ、Jails...轻量级虚拟化容器技术可以提供一种轻量、可移植、自包涵的解决方案,满足了当前软件开发和部署的需求。
标题中的“WEB容器托管OSGi容器(轻量级集成方式)”是指在Web应用程序服务器(如Tomcat、Jetty等)中嵌入OSGi(Open Service Gateway Initiative)框架,实现服务组件的轻量化管理和部署。OSGi是一种动态模块化系统...
Jetty 是一个用 Java 实现、开源、基于标准的,并且具有丰富功能的 Http 服务器和 Web 容器,可以免费的用于商业行为。Jetty 这个项目成立于 1995 年,现在已经有非常多的成功产品基于 Jetty,比如 Apache Geromino...
与传统的全虚拟化技术相比,轻量级虚拟机通常更加高效,因为它不需要模拟底层硬件,而是依赖于操作系统级别的抽象,这种技术也被称为容器或轻量级容器。 在轻量级虚拟机中,核心组件是虚拟化层,它将硬件资源如CPU...
**轻量级Django**,这个...通过以上策略,我们可以有效地使用Django进行轻量级Web开发,同时保持项目的可维护性和扩展性。《Django轻量级 (2).pdf》这份文档很可能会深入探讨这些话题,为开发者提供实际操作的指导。
总的来说,通过分析和学习【Java Web轻量级开发全体验】的源码,我们可以深化对Java Web开发的理解,掌握轻量级框架的使用,提升我们的开发技能和解决问题的能力。这是一个宝贵的学习资源,对于希望在Java Web领域...
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...
它以其轻量级、模块化的设计理念,极大地简化了Java应用程序的构建,尤其在Web应用开发领域中,Spring扮演着至关重要的角色。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程...
Java轻量级容器,如Spring、HiveMind和PicoContainer,是为了降低系统组件间的耦合度而设计的。它们都采用了依赖注入这一核心设计模式,但在实现方式和哲学上各有不同。 **Spring Framework** 是一个功能全面的轻量...
相比于传统的重量级容器,这种轻量级的设计在保持基本功能的同时,显著减少了资源消耗,适用于对性能敏感的应用场景。此外,通过灵活的映射机制,使得容器能够在不同的实体类间通用,进一步提高了其实用价值。
在《轻量级J2EE企业应用实战3》中,作者可能详细介绍了轻量级J2EE架构的基础知识,包括如何构建一个基于Spring的IoC(Inversion of Control,控制反转)容器,以及如何利用AOP(Aspect-Oriented Programming,面向切...
通过阅读《轻量级J2EE企业应用实践》,读者不仅可以掌握J2EE技术的基础,还能了解到如何在实际项目中选择合适的轻量级框架和技术,实现高效的企业级应用开发。同时,书中可能还包括案例研究和实战练习,帮助读者将...
容器技术可以提供一种轻量级虚拟化解决方案,对于应用程序的开发、测试、部署和维护都有着非常重要的意义。同时,容器技术也可以提供一种在安全、可重复的环境中自动部署软件的方式。 轻量级虚拟化技术——容器技术...
iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点,不受硬件规格和架构限制,底噪开销更小,可应用的领域更为广泛。iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点...
主要是 VMware 为容器化应用而设计的轻量级的操作系统。类似RedHat的Atomic 项目,以及Ubuntu的Snappy项目。Project Photon主要用于运行VMware vSphere和VMware vCloud,它使得企业可以在单一平台上同时启动容器与...