轻量级框架和重量级框架的区别
轻量级框架和重量级框架的区分并没有一个明确的定义,它是个相对概念,通常我们会依据启动资源多少、开发程度难易等进行区分。
一、从启动程序耗费资源来看,EJB(java bean),因为默认提供了EJB规范中所用的功能,所以EJB往往是买一送三,不要也不行,EJB启动会耗费大量资源,内存、CPU等,所有服务都会加载进来。Spring提供了很多服务,但是这些服务默认是不打开的,当我们需要某个服务的时候,只打开某个服务就可以了,定制服务,需要什么加载什么。(当然不是说只要你用了Spring那就一定是轻量级,如果应用中使用了Spring的大量服务,这时他也应该是重量级的)
二、从侵入性的角度来看,轻量级框架不一定需要继承和实现框架的接口和抽象类来实例化组件,重量级框架需要继承和实现框架的类或者实现框架的接口,以便使用框架中间件特性。这就可能需要实例化大量的类并注册到应用中,即使他们是没用的。从这个角度看,重量级框架侵入性更高。
侵入性:也称为框架依赖性、耦合性,从软件工程的角度解释,软件工程的设计标准是“高内聚,低耦合”,侵入性是指耦合性太强。有个比较通俗的解释就是复用性,代码的复用性越高,侵入性就越低,反之同理。
举个例子:A是侵入性的,B中使用了A,那么如果后面A要换成C,就需要修改B;
A是非侵入性的,B中使用A,后面把A换成C,只要修改配置文件就好了。
三、轻量级框架一般是一组独立的特性实现集,重量级框架往往依赖某些或其他类型的容器支持框架特性。
四、从开发难易程度来看,轻量级框架在开发中应用简单方便,重量级框架开发时需要写一些框架绑定的类,部署、运行、测试及维护都较为复杂,开发较为困难。
五、从解决问题的侧重点看,轻量级框架侧重减小开发的复杂度,但他处理能力较弱(处理事务能力弱,不具备分布式处理能力),比较适用于开发中小型企业应用,重量级开发适用于开发大型企业应用。
轻量级框架和重量级框架的区别相关推荐
- java 重量级锁_轻量级锁和重量级锁的区别分别有哪些?java锁机制教程
Java中有着各种锁机制,今天我们要说的就是其中两种状态,轻量级锁与重量级锁,小伙伴们知道它们的区别分别有哪些吗?下面来了解一下吧. 首先我们了解一下有哪些锁状态吧 锁的状态总共有四种:无锁状态.偏向 ...
- 偏向锁、轻量级锁、重量级锁的区别和解析
为了换取性能,JVM在内置锁上做了非常多的优化,膨胀式的锁分配策略就是其一.理解偏向锁.轻量级锁.重量级锁的要解决的基本问题,几种锁的分配和膨胀过程,有助于编写并优化基于锁的并发程序. 内置锁的分配和 ...
- Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,Java S ...
- 知识扩展——轻量级和重量级框架的区别
不管是iOS开发还是前端.Java.Android开发中,我们经常需要用到第三方库,而在搜索第三方库的介绍和使用文档时,经常会看到轻量级.重量级等字眼,那么轻量级框架和重量级框架是怎么区分的呢? 判定 ...
- java重量级框架_框架之轻量级和重量级
框架之轻量级和重量级 一:基本概念: 量级主要是看容器的依赖性所决定的 , 依赖性越小 , 越轻量 . 1 .轻量级框架 1. 定义:在 Java 应用程序开发环境中, " 轻量级 Java ...
- 什么是轻量级框架,什么是重量级框架?
在项目初期定框架方案或者是寻思敏捷开发的时候,经常会看到轻量级.重量级等字眼,那么问题来了, 什么样的框架被叫做轻量级框架,什么样的是重量级框架呢? 1.我觉得最主要的衡量指标是以消耗的资源来决定.比 ...
- Google Guice 一个轻量级的依赖注入框架
1.美图 2.概述 2.1 背景 在做项目的时候,看见有段代码直接是使用Google Guice 注入了avaitor表达式. 2.1 官网 Github 主页:https://github.com/ ...
- Laravel框架与ThinkPHP框架的区别
TP框架: ThinkPHP简单.快速,基于MVC和面向对象,易用性较高,是一款简洁实用的轻量级框架. Laravel框架: Lavavel一直秉承着优雅的原则,很好的支持了composer(tp6. ...
- 框架和库有什么区别? [关闭]
框架和库有什么区别? 我一直认为库是一组对象和函数,专注于解决特定问题或应用程序开发的特定领域(即数据库访问); 另一方面,框架是一个以特定方法(即MVC)为中心的图书馆集合,涵盖了应用程序开发的所有 ...
最新文章
- set 数据类型的应用场景
- console类详细解释
- .NET 6 Preview5+VS2022实战千万并发秒杀项目,帅爆了(附源码)
- $python数据分析基础——初识numpy库
- 离散对数(例题+详解+代码模板)
- Linux下搭建 kafka集群 + zookeeper集群部署 安装、启动、停止
- 利用WIX制作安装包(2)
- 直播防盗链,域名设置
- nvidia控制面板只有3d设置?
- hscan命令redis中游标的含义
- Windows 右键菜单修复
- Android 控件获取焦点
- 黑鲨重装计算机安装无法继续,一键重装失败不要怕,黑鲨教你解决一键重装系统失败问题...
- 在线直播系统搭建的功能包含哪些?
- electron????开发跨平台桌面应用程序???
- 环保公司网站的设计与制作
- MYSQL下载后的使用方法
- 自定义竖向SeekBar (VerticalSeekBar)
- C# Excel导出超出65536行报错
- GL-Studio 4.3-1 安装
热门文章
- 拼音转换---Python自然语言处理(6)
- 08-图9 关键活动
- 基于ubuntu的STM32嵌入式软件开发(三)——基于官方标准函数库的软件工程移植
- 计算机学位论文的开题报告,计算机硕士论文开题报告格式范文
- c语言作业i love gplt,集思广益 | 寒假天梯赛准备第一阶段总结
- 计算机考研877难不难,計算機方向考研全都是統考嗎?為什麼有的學校專業課是877,有的是850呢?不全都是408嗎?...
- 查看文件目录下最近新增文件/显示C盘中隐藏文件办法/释放C盘空间办法
- WGCNA(加权基因共表达网络分析)
- 车载逆变器E-Mark认证对应的法规
- 服务器硬盘复制速度突然变慢,win10机械硬盘复制文件速度一开始快后来变慢怎么修复...