OSGi为什么重要:向模块化转移的主攻手

全面掌握OSGi:入门、进阶到实战指南 本文还有配套的精品资源,点击获取 简介:OSGi是一种模块化和可管理的Java应用程序标准,通过动态管理和版本控制提升应用灵活性和可维护性。本课程分为入门篇、进阶篇和实战篇,内容涵盖了OSGi的核心概念和高级应用,如模块系统、生命周期管理、服务注册与查找、动态部署、依赖注入、安全机制等。此外,还包括了如何构建OSGi应用、与Spring集成、Eclipse RCP开发、企业... 阅读详情

 OSGi是一个Java企业级开源框架,近年来得到了很多方面的关注。本文作者Patrick认为OSGi是过去20年间兴起的一种革命性的技术,因为它代表了长期软件开发发展中下一个合理的步骤。他评论OSGi的优势在于提供了标准的Java软件包,是从非模块化转移到模块化的重要技术。

本文为JavaLobby社区上的一篇文章。OSGi是一个Java企业级开源框架,近年来得到了很多方面的关注。看到很多博客文章都在询问OSGi为什么重要,OSGi的推广者Patrick Paulin写下了此文。如果你同很多人一样,也在环顾着OSGi使用量的增加,同时想知道它对你来说是否重要,那么请看他的答案。

51CTO编辑推荐:OSGi入门与实践全攻略

Patrick:我要以一个非常大胆的说法开始,即OSGi是在过去20年间兴起的最重要的技术之一。听起来虽然不算什么,但OSGi确实是一种革命性的技术。事实上,OSGi非常重要,因为它代表了长期软件开发发展中下一个合理的步骤。

OSGi的开端

为了能够让你理解我的意思,让我们回到20到30年前。那时候,面向对象语言刚开始流行,我们之所以采用面向对象语言的主要原因之一是,它能够让我们隐藏很多代码的实现细节。

从过程式语言到面向对象语言的转变,让我们能够开发类,定义访问权限,共享公共方法。

过程式语言到面向对象

其结果是,我们的大部分代码在其类外是不可见的。这对我们开发软件的方式产生了深刻的影响。通过接受这种明显的可见度限制,我们获得了极大的使用自由。我们可以自由地重用类,而不需要知道它们的实现细节。我们可以自由地重构我们的代码,而不必担心类的使用者。

你能想像如果开发软件而没有信息隐藏是多么痛苦吗?

OSGi的优势

现在设想如果不仅可以隐藏类的方法,还可以隐藏JAR中的整个类集,那将会是一种怎样的情形呢。设想JAR可以定义类运作的公共规则,这些规则将被应用于开发和运行时。设想我们可以获得信息隐藏的所有的优点(管理复杂性,代码重用,易测性,重构等)。

OSGi让这一切成为了可能。它提供了标准的Java软件包,作为一个新的信息隐藏单元。当我们的代码是运行在一个OSGi框架内时,JAR中的每个包对于使用者来说都可以可见或隐藏。

JAR包

就如同类可以用一组小的公共方法来描述其与使用者之间的规则,一个模块化的Jar文件(OSGi术语称bundle)用一组小的导出包来描述公共规则。大部分代码都隐藏在内部包中,对于其它JAR并不可见。

设想可以重命名类、分割或合并类、把类从一个包转移到另一个包、把整个包从一个JAR移动到另一个JAR,所有这些操作都不必担心会影响到JAR的使用者。这么多种类型的重构操作现在都不必再担心会出问题。基于包层次的信息隐藏给予我们施行重构的信心,让我们能够及时迎合用户的需求。

相关阅读:JAR文件包及jar命令详解

模块化不可避免

OSGi如果想获得成功,基于JAR层次的信息隐藏是不可避免的。在今后5到10年,我们将考虑是否有可能不采用这种机制。

目前,OSGi是我们不得不完成这一使命的唯一工具。幸运的是,OSGi是一个考虑周全、测试良好、基于标准的解决方案。我想不出任何开发OSGi替代品的理由(除了可能会修改它的名字)。OSGi就在这里,它工作良好,让我们使用它吧。

OSGi时代来临

Steve McConnell曾说过一句非常漂亮的话,这句活真正接触到了OSGi正努力实现的核心目标。

在Code Complete中,他写道:

“通过增加聚集粒度,软件开发已经在很大程度上取得了进步。”

因为这种聚集的粒度是如此重要,从非模块化转移到模块化,同从过程化转移到面向对象化同样重要。20年来,我们一直局限于使用类作为提取单元,现在正是向模块转移的时候,OSGi时代即将来临。

国产数据库迁移必看:达梦到ES的CDC方案优化全记录(含完整代码) 本文详细记录了从达梦数据库到Elasticsearch的CDC方案优化全过程,涵盖触发器方案局限性、Debezium架构优势及完整代码实现。通过Flink集成和性能调优,实现毫秒级延迟同步,显著降低数据库负载,为国产数据库迁移提供可落地的技术方案。 阅读详情

相关推荐

STM32—时钟树(结合系统时钟函数理解)

时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处。心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来驱动,而这个脉冲的始源往往是由外部晶体振荡器提供时钟输入,最终转换为多个外部设备的周期性运作。这种时钟“能量”的传递路径犹如大树的养分由主干流向个分支,因此称为时钟树。 STM32时钟: 在STM32...

肥宅快乐博客 1万+

Java模块化的守护神-OSGi就是这么简单!

引子说到OSGi,可能有些人会有些懵,这个概念的知名度确实不像JVM、Spring全家桶等这种“网红”人物这么出名,OSGi联盟成立于1999年,直到2007年的时候,能否采纳还没有被业界...

码农code之路 1万+

【软碟通 | UltraISO】刻录光盘教程(制作U盘启动盘)

前言 今天老师说办公室的电脑有点卡,让我给重新安装一个 Windows 7 系统。于是就用软碟通(UltraISO)在 U 盘上刻录了一个 Windows 7 镜像,然后给老师重装了系统。顺便把制作 U 盘启动盘的教程也分享给大家。 软件 UltraISO v9.7.1.3519:点击跳转(密码:dd2k) 教程 将 U 盘插到电脑上,然后鼠标右击选择格式化(制作启动盘必须格式化) 点击文件-打开 选择下载好的系统镜像(如:Windows 7) 点击启动-写入硬盘映像 选择硬盘

XavierJ的博客 2万+

osgi详解

osgi

u014365523的博客 1958

武汉理工大学 python实验三

请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾),如无解则输出`“Data Error!题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?年前,《孙子算经》中记载一个有趣的问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有。编写一个宝塔上的琉璃灯的小程序,计算并输出每层各有多少盏琉璃灯。,如果有多个解,则分行输出,每行一个解;

2401_83472225的博客 5949

富斯遥控器-ros机器人控制

富斯遥控器-ros机器人手柄控制

zkh7758的博客 1699

OSGi简介

使用Equinox开发B/S架构的OSGi应用

Snowball 3369

Codesys电子凸轮功能块MC_CamIn的masteroffset和slaveoffset参数的使用

问题1:在Codesys使用作轴电子凸轮时,MC_CamTableSelect的参数设置为MasterAbsolute=1,SlaveAbsolute=1,此设置为绝得模式, 此时主从轴当前位置都不为零时,此时Masteroffset=0、slaveOffset=0,凸轮启时出现突变,实轴无法启动。问题分析:在觉得模式下,主轴位置和从轴为是对应凸轮表的相位的,Masteroffset=0、slaveOffset=0,启动点时在主轴位置=0,从轴位置=0的点启动,此时主轴当前位置不为零则主从轴位置发生突变,

weixin_43587371的博客 1801

OSGI架构设计

OSGI在国内不常用,而且相关资料比较少,很早之前在2015年的时候,公司有机会拿此框架做过一个项目,还算成功,所以在此分享一下OSGI的相关内容。 一、什么是OSGI? Open Service Gateway Initiative,官方说的很明白,上网一搜介绍也有一堆,在此就不详细搬述了,也没啥意义。但是根据项目中对osgi的实战,想说说我个人的理解,我个人总结的是osgi是一个非常好的模...

blackspoon123的专栏 2305

8年ES运维经验整理出的Elasticsearch运维手册(超实用)

k1 : 控制非线性词频率归一化(饱和),Elasticsearch中默认值为1.2。用人能看懂的话说就是词语在文档中出现的次数对于得分的重要性。例如说我觉得在某些场景,一个搜索词在文档中出现越多则越接近我希望搜索的内容,就可以将这个参数调大一点。b :控制文档长度对于分数的惩罚力度。变量b处于分母上,它乘以刚刚讨论过的字段长度的比值,Elasticsearch中的b 默认值为0.75。如果b较大,则文档长度相对于平均长度的影响更大。

yonggeit的博客 5274

SerDes学习笔记:接收机CTLE均衡架构示例(USB3.1、PCIe3.0\4.0\5.0)

本文分析了USB3.1和PCIe标准中连续时间线性均衡器(CTLE)的设计演进。USB3.1Gen1采用一阶CTLE,其传递函数在长信道下具有有源滤波器特性;Gen2版本延续类似架构,通过Adc参数调节零点频率。PCIeGen3/4保持一阶结构但调整极点位置,Gen5升级为二阶传递函数,扩展Adc调节范围至-5dB~-15dB。研究表明,CTLE能有效改善信号完整性,通过参数优化可平衡信号衰减与码间干扰抑制。

一只豌豆象的博客 624

架构设计——OSGI规范

架构设计——OSGI简介 一、OSGI简介 1、OSGI简介 OSGI(Open Service Gateway Initiative),即开放服务网关协议,是面向Java的动态模型系统。OSGI是指由OSGI Alliance组织制定的Java模块化规范,OSGI规范的核心部分是一个框架,其中定义了应用程序的生命周期模式和服务注册。基于OSGI框架定义了大量的OSGI服务:日志、配置管理,HTT...

weixin_34247299的博客 996

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

a_zxswer的博客 190

OSGi是什么:Java语言的动态模块系统

本文介绍了OSGi是什么,以及OSGi容器的一些现状。OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。 之前51CTO曾发过一篇文章叫做《OSGi为什么重要:向模块化转移的主攻手》,里面对于OSGi的优势进行了分析。不过,对于究竟什么是OSGi,很多人仍然只有一个模糊的概念。本系列(你好,OSGi)从基础开始介绍了OSGi。本部分介绍OSGi是什么,以及OSGi

kobejayandy的专栏 1149

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OSGI

转自:http://developer.51cto.com/art/200909/154762.htm OSGi是近年来很火的一个Java EE名词,51CTO曾经发布的一篇《OSGi为什么重要:向模块化转移的主攻手》中,对于OSGi的优势进行了分析。然而有关OSGi的技术文章,至今仍比较少有,对于大家进行OSGi入门的过程有诸多不便。 51CTO编辑推荐:OSGi入门与实

rengq126的专栏 601

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OSGi知识

OSGi为什么重要:向模块化转移的主攻手:http://developer.51cto.com/art/200905/122772.htm OSGi是什么:Java语言的动态模块系统:http://developer.51cto.com/art/200909/152190.htm  ...

weixin_34234829的博客 78

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

一、OSGi是什么:Java语言的动态模块系统

本文介绍了OSGi是什么,以及OSGi容器的一些现状。OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。 之前51CTO曾发过一篇文章叫做《OSGi为什么重要:向模块化转移的主攻手》,里面对于OSGi的优势进行了分析。不过,对于究竟什么是OSGi,很多人仍然只有一个模糊的概念。本系列(你好,OSGi)从基础...

weixin_33721344的博客 117

java中怎么加载dll,java语言如何调用DLL

java语言如何调用DLLjava语言调用dll的方法:1。加载dll,必须是静态方法。static{System.loadLibrary(DllConstants.DLL_PATH);}2。将dll中开发的接口声明为本地接口public native String[] getTxt();相关文档:一、JAVA中定义了三种注释类型://单行注释——注释到行尾/*多行注释*//**可以用于文档处理的...

weixin_39611930的博客 1117
上一篇: 每个Linux管理员应该知道的20个Linux系统监视工具
下一篇: OSGi是什么:Java语言的动态模块系统
kobejayandy
博客等级 码龄18年 2853粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值