Bundle类加载器:classloader

最近开始投入时间,进行OSGI的学习,买了林昊的《OSGI的原理与实践》,并且参考51cto上的文章等其他资料,来整理知识

 

OSGI的动态模块性开发,很大程度在于OSGI中Bundle之间依赖性的设计方案,我个人认为这是OSGI 中一个很有价值的地方,

 

在我们平时的web开发中,虽然说是模块性开发,但是那种依赖设计,不是真正的模块,达不到即插即用,及删及无得效果;

 

而在OSGI规范中,则可以实现这种“理想中”的模块化,达到了,物理上脱离的模块开发。

 

 

回到Bundle之间依赖性的问题上来,

bundle之间类的共享:

通过 export package的方式实现的,在bundle的manifest中通过制定export package的方式将特定的package与其他的bundle共享。

而引用其他bundle所暴露的package有两种方式,第一是通过 import package的方式,第二种是通过required bundle的方式

 

OSGi容器为每个Bundle创建不同的classloader,

 

因此每个Bundle能访问位于下列位置中的类:

a) 位于Java启动类路径下的、所有以Java.*开头的包中的类;

b) 位于OSGi框架类路径下的类,通常有一个独立的类加载器负责加载框架的实现类及关键的接口类;</

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
apisix-dashboard编译报错 如下,请帮助解决:Error: build failed at /usr/local/apisix-dashboard/web/node_modules/@umijs/bundler-webpack/lib/index.js:177:29 at finalCallback (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:108196:12) at /usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:108219:6 at done (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:67212:13) at runCompilers (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:108123:48) at /usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:108130:7 at /usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:108212:7 at finalCallback (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:98589:39) at /usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:98605:13 at AsyncSeriesHook.eval [as callAsync] (eval at create (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:147581:10), <anonymous>:51:1) at AsyncSeriesHook.lazyCompileHook (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:147518:20) at onCompiled (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:98603:21) at /usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:99013:15 at AsyncSeriesHook.eval [as callAsync] (eval at create (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:147581:10), <anonymous>:6:1) at AsyncSeriesHook.lazyCompileHook (/usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:147518:20) at /usr/local/apisix-dashboard/web/node_modules/@umijs/deps/compiled/webpack/4/bundle4.js:99010:31
07-14

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值