直接把一项技术的规范和文档拿出来秤:操过500克就是heavyweight,否则就是lightweight。
似乎heavyweight总是与复杂性联系起来的,就如同ejb container与spring。
我们所开发的系统并不是都是分布式的,也并不都是那么复杂的,才会有spring的出现。客观的说,ejb container能够提供的功能,spring基本上都能够以javabean的方式实现。
区别在于ejb container是一个构件的容器;而spring是一个对象的容器,一个转移对象间的耦合,把业务逻辑与安全、事务等相分离的轻量级解决方案。
Spring 最核心的部件就是它的Bean Container,在整个框架中扮演了一个软总线,它使框架内部的组件按照一定的耦合度组装起来,对外提供一个服务的接口。
如果开发一个需要跟多个系统交互运行的分布式系统还是使用ejb吧, spring取代不了ejb。
但是对于大多数web应用,应该是一个不需要访问其他系统的多层系统(即使可能访问多个数据库),采用spring把。Spring+hibernate应该是一个比较好的组合,但和ejb container相比,spring的缺点就是没有规范。其实这么多年来,java总是在不停的修修补补中前进。
轻量级容器对于web 应用的意义尤为明显;但对于其他类型的应用(包括在J2EE环境中运行的应用和独立的应用)来说,轻量级容器也有助于提高它们的复用程度,例如业务对象和数据访问对象(DAO)的复用。 什么是轻量级容器? EJB可能是最好的反例:
1. 侵略性的API(你的代码依赖于EJB)
2. 对容器的依赖(你的代码不能在EJB容器之外工作)
3. 只提供固定的一组功能,不具备配置能力
4.
5. 启动时间长
6. 部署过程取决于特定的产品,无法通用 轻量级容器的目标是避免上面所有这些麻烦事情.
分享到:
相关推荐
轻量级框架和重量级框架的区别在于解决问题的侧重点不同。
部分内容:本文档旨在深入探讨Spring轻量级容器与EJB重量级容器的区别,通过对这两个概念的剖析,帮助读者理解它们在企业级应用中的不同作用与优势。 一、容器的概念与服务 容器是现代软件工程中的关键概念之一,...
当线程开始尝试获取锁时,Java会引入三种不同类型的锁:偏向锁、轻量级锁和重量级锁。 1. **偏向锁**:偏向锁是默认的锁状态,假设只有一个线程访问同步代码块,它会尝试将Mark Word中的线程ID设为当前线程ID,这样...
本文将详细解析Java中的偏向锁、轻量级锁和重量级锁,这些都是JVM为了提高并发性能而实现的锁优化策略。 首先,我们从最简单的偏向锁开始。**偏向锁**的设计理念是假设大多数情况下,锁都不会被多个线程竞争。当一...
在Java Web开发领域,"轻量级"一词通常指的是不依赖大型、重量级的服务器端框架,而是采用更加灵活、高效和小巧的工具集来构建应用程序。这样的开发方式有助于提高开发效率,减少资源消耗,并易于维护。本主题聚焦于...
首先,Java Web轻量级开发主要指的是不依赖于重量级的应用服务器,如IBM WebSphere或Oracle WebLogic,而是采用更加灵活、可扩展的框架,如Spring Boot、Quarkus或Play Framework。这些框架使得开发者能够快速构建...
Java锁的升级策略是指Java语言中锁机制的四种状态:无锁状态、偏向锁、轻量级锁、重量级锁。这些锁状态都是专门针对Synchronized关键字的,是为了提高获得锁和释放锁的效率。 首先,无锁状态是指没有任何锁的状态。...
【轻量级的Bug管理工具】是一款专为小型团队或个人开发者设计的高效问题跟踪解决方案。相较于重量级的Bug管理工具如禅道,它具备更小巧的体积和更简单的使用流程,无需安装即可运行,降低了使用的门槛。这款工具的...
在第一章中,作者首先定义了轻量级工作流引擎的概念,强调其相对于重量级工作流引擎的简洁性和高效性。接着,文章对工作流管理系统进行了分类,包括面向文档和面向过程的系统,结构化与即席的系统,基于邮件和基于...
我们这里的轻量级的方案是指:Ibatis, 与之相对的重量级解决方案是: Hibernate. 重量级的方案,在代码层面上体现为: 需要增加很多的依赖包, 重量级一般都以为着绑定,耦合,轻量级意味着松散,解耦。
在Java EE(Enterprise Edition)开发中,"轻量级"通常指的是使用非重量级的容器或者框架,如Spring、Hibernate等,来替代传统的EJB(Enterprise JavaBeans),以降低系统的复杂性和提高开发效率。这一版本的实战...
首先,轻量级框架的概念是相对于重量级的Java EE应用服务器而言的。这些框架如Spring MVC、Struts 2、Play Framework和Spark Java等,旨在减少开发复杂性,降低内存占用,提高应用程序的启动速度和整体性能。 在...
轻量级框架是指相对重量级框架来说,结构简单、易用、可扩展性好的自动化测试框架。它们通常基于一些基本的设计模式,如Page Object Model、Data Driven等,使得测试代码结构清晰,易于维护和扩展。 二、Page ...
《轻量级J2EE企业应用实战》这本书深入浅出地介绍了如何在企业环境中使用轻量级Java EE技术栈来构建高效、可扩展的应用程序。轻量级框架因其低开销、快速开发和易于维护的特点,已经成为现代企业级开发的重要选择。...
Vue.js是一套构建用户界面的轻量级MVVM框架,与其他重量级框架不同的是, Vue.js 的核心库只关注视图层,并且非常容易学习,很容易与其它前端技术或已有的项目整合。 本系课程,主要分为两部分完成。第一部分:掌握...
轻量级Java EE则是相对于传统的重量级Java EE框架而言,强调更小的体积、更高的效率和更简单的部署。 在轻量级Java EE领域,开发者通常会选用如Spring框架、Hibernate ORM、JSF(JavaServer Faces)、CDI(Contexts...
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
- **概念**:轻量级J2EE框架是指那些相对于传统的EJB等重量级框架而言,更注重灵活性、易用性和性能的一系列开源框架。 - **典型代表**: - **Spring Framework**:提供了依赖注入(DI)、面向切面编程(AOP)、...
- **轻量级**:与MFC等重量级框架相比,ATL没有厚重的基础架构,这意味着开发者可以更加自由地控制自己的应用程序。 - **专注于核心COM接口**:ATL主要关注于实现基本的COM接口,如`IUnknown`和`IClassFactory`,而...
在"轻量级"方面,本书强调的是使用更简洁、更灵活的框架和技术,而不是Java EE传统意义上的重量级容器。例如,可能会涉及到Spring框架,这是一个非常流行的轻量级Java框架,它简化了依赖注入、AOP(面向切面编程)、...