SpringDM笔记3-MAINFEST.NF文件:Header,Version配置

1. The configuration of a header follows the syntax illustrated in the following snippet:
    Header-Name:
    header-value1;directive1:=value1;directive2:=value2,
    header-value2;directive1:="item1, item2, item3";attribute1=value4,
    header-value3;directive1:=value1;directive3:=value3

    ...

    例如:

    Import-Package:
    javax.xml.parsers;resolution:=optional,

    net.sf.cglib.proxy;resolution:=optional,

    org.apache.commons.logging,org.springframework.beans;resolution:=optionalversion=2.5.0,

    org.springframework.beans.annotation;resolution:=optional;version=2.5.0,

    ...

2. The main OSGi headers used in a bundle’s manifest file

    Manifest-Version: 指定Mainfest.MF文件的版本

    Bundle-MainfestVersion: OSGiR4,2;OSGi3,1

    Bundle-sybbolicName:指定组件的唯一名字

    Bundle-Name:指定易于阅读的名字

    Bundle-Version:指定组件的版本(与Bundle-sybbolicName合起来使用)

    Bundle-DocURL

    Bundle-Category

    Import-Package

    Export-Package

    DynamicImport-Package:动态的从其他Bundle中Import所有Package

    Bundle-NativeCode

    Require-Bundle:Import一个Bundle的所有ExportPackage

    Bundle-Activator

    Bundle-ClassPath

    Fragment-Host: 将一个Fragment赋给一个主Bundle

3. SpringDM提供的Header

    SpringExtender-Version: 针对主Bundle,给SpringExtender附一个目标版本

4. Virgo Web Server提供的Header

    Library-Version:指定一个Library的版本

    Library-SysbolicName: 一个Library的唯一名字与Library共同使用

    Import-Bundle
    Import-Library

    Application-SymbolicName: PBWDP
    Application-Version: 1.0.0.RELEASE
    Application-Name: PBWDP PAR

 

    Module-Type: Web
    Web-ContextPath: PBWDP
    Web-DispatcherServletUrlPatterns: APP

5. Import-Package与DynamicImport-Package的使用场景

    如果一个Bundle不能确定需要Package中的那些Class,则使用DynamicImport-Package;否则使用Imort-

    Package.

    DynamicImport-Package: 如果一个Bundle需要某些类时,而这些使用了Class.forName()进行加载,此时

    类之间的依赖关系很难被检测出来,此时使用该Header可以在解析依赖关系时自动从类路径中搜寻需要的类,

    从而确保依赖关系满足;一个Bundel使用该Header,在Bundle启动的过程中是不需要所依赖的Package能被

    Resolved的,在该Bundle后期需要的时候再去临时动态Resolve;同时该Header支持(*),如:

    DynamicImport-Package:com.apress.ch3.*

    这将能够同时导入com.apress.ch3下的所有类。

    Import-Package: 需要Bundle在Resolve时所依赖的Package能被Resolve, 而且不支持通配符(*);同时这两

    个Header支持属性:resolution:=option, 当Bundle在Resolve时会试图解析依赖的Package.

    另外: DynamicImport-Package当一个类加载器试图加载该Header指定的Package时,每次将Wire一个

    Package;而Import-Package有属性resolution:=option时,将在bundle resolve时只wire一次依赖的

    Package.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值