深入理解osgi Equinox 原理,应用与最佳实践 第2章 模块层规范与原理

2.1 OSGi 规范概要

2.2 Bundle

       从Jar文件格式规范基础上扩展而来的

2.3 描述元数据 

      bundle的元数据信息定义在/META-INF/MANIFEST.MF文件之中,OSGi规范中明确要求实现能够正确识别那些被预订已过的标记

   2.3.1 预定义标记

    

    1. 根据类名过滤

    2.根据版本过滤

    3. 根据提供者过滤

    4.根据属性过滤

    5.可选导入与动态导入

    6.导出package的依赖限制

    7. 导入整个Bundle

     

2.5.2 Bundle类加载器

      OSGi框架为每一个Bundle生成了一个Bundle类加载器的实例,这些类加载器负责处理其他Bundle委派的加载请求

      根据元数据信息确定,这些加载请求的类是否与该Bundle的导出列表符合,然后对合法的加载请求进行响应,返回该Bundle的类给其他Bundle使用

Bundle A被附加,所以能搜索到fragment.jar

    Bundle类加载器收到类加载请求时,会优先委托给导入包的其他Bundle类加载器处理,只有其他导入包的Bundle类加载器都无法处理时,才会尝试自己处理

Bundle B 导入了Bundle A,所以就只使用A的同名的class,不使用自己的

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2.5.3 其他类加载器

        OSGi框架自身的代码,涉及OSGi框架启动的代码,就没法使用Bundle类加载器来加载

线程上下文加载器,默认为应用程序类加载器

2.5.4 类加载顺序

    

 

   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2.6 定义执行环境

     

2.7 本地化

      bundle的本地化信息必须遵循特定的命名规则,存放在Bundle的指定目录下,如果没有指定,默认为 “OSGI-INFO/110n”

查找对应的语言本地化文件

    第二种是在MANIFEST.MF中使用本地化变量,然后在本地化文件中定义这些变量的值

    

 

 

 

    

       

 

 

 

 

      

 

      

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSGi(Open Service Gateway Initiative)是一种面向服务的模块化架构,旨在提供行业标准的动态模块化系统,使应用程序能够以一种可靠和可扩展的方式进行构建。EquinoxOSGi的实现之一,是基于Eclipse平台的一个模块系统和框架。 深入理解OSGi Equinox原理,需要了解OSGi的核心概念,包括模块化、动态扩展、服务注册与发现等。Equinox作为OSGi的实现,其原理主要包括模块化的Bundle概念、OSGi服务机制、Bundle的生命周期管理等。通过深入学习这些原理,可以更好地理解应用OSGi Equinox。 在实际应用中,OSGi Equinox可以帮助我们构建模块化、可扩展、动态的系统。例如,通过将系统划分为不同的Bundle,可以实现模块化开发和部署;通过使用OSGi服务机制,可以实现动态的服务注册与发现;通过Bundle的生命周期管理,可以实现动态的模块加载、卸载和更新等。 最佳实践方面,可以借助于OSGi规范Equinox框架提供的工具和机制,来设计和构建符合模块化、灵活性和可维护性要求的系统。例如,合理划分系统功能为不同的Bundle,定义清晰的服务接口和实现,合理管理Bundle的依赖关系等。 总之,深入理解OSGi Equinox原理应用,可以帮助我们更好地构建模块化、可扩展、动态的系统,提高系统的灵活性和可维护性。同时,通过遵循最佳实践,可以更好地发挥OSGi Equinox的优势,构建高质量的系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值