From 4a3130fbda79976f74415a7762eb2702f9cb44f5 Mon Sep 17 00:00:00 2001 From: yangzl Date: Sat, 16 Jan 2021 19:43:31 +0800 Subject: [PATCH] feat(OSGI): OSGI Signed-off-by: yangzl --- README.md | 9 +++++++ .../\346\250\241\345\235\227\345\214\226.md" | 27 ++++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fb11e31..75584e5 100755 --- a/README.md +++ b/README.md @@ -2,6 +2,15 @@ https://github.com/youngzil/quickstart-modular + +- [Fat Jar学习](docs/Fat Jar学习.md) +- [模块化.md](docs/模块化.md) + - [模块化的实现、好处、框架](#模块化的实现、好处、框架) + - [OSGI(面向Java的动态模型系统)](#OSGI(面向Java的动态模型系统)) + + + + 模块化相关,JAVA的模块化开发框架 classloader isolation framework modular development framework diff --git "a/docs/\346\250\241\345\235\227\345\214\226.md" "b/docs/\346\250\241\345\235\227\345\214\226.md" index 85a7b42..cc0ae3b 100644 --- "a/docs/\346\250\241\345\235\227\345\214\226.md" +++ "b/docs/\346\250\241\345\235\227\345\214\226.md" @@ -1,9 +1,9 @@ -模块化的实现、好处、框架 - +- [模块化的实现、好处、框架](#模块化的实现、好处、框架) +- [OSGI(面向Java的动态模型系统)](#OSGI(面向Java的动态模型系统)) --------------------------------------------------------------------------------------------------------------------- - +## 模块化的实现、好处、框架 模块化框架: osgi、jarslink、java9等 @@ -40,6 +40,27 @@ agentmain --------------------------------------------------------------------------------------------------------------------- +## OSGI(面向Java的动态模型系统) + +OSGi(开放服务网关协议,Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。 +[OSGI百度百科](https://baike.baidu.com/item/OSGI/16158) + + +ClassLoader可以实现的功能: +1、自定义加载类,实现切面功能、代码保护加解密等 +2、 +3、热部署功能 + + +类层次划分,OSGi,热部署,代码加密等领域 + +Java模块化框架OSGI + + +比较常见的场景就是隔离,比如早些年比较火的Java模块化框架OSGI,把每个Jar包以Bundle的形式运行,每个Bundle有自己的类加载器(不同Bundle可以有相同的类名),Bundle与Bundle之间起到隔离的效果,同时如果一个Bundle依赖了另一个Bundle的某个类,那这个类的加载就委托给导出该类的BundleClassLoader进行加载;又比如Tomcat容器,每个WebApp有自己的ClassLoader,加载每个WebApp的ClassPath路径上的类,一旦遇到Tomcat自带的Jar包就委托给CommonClassLoader加载;对于公司的一些核心类库,可能会把字节码加密,这样加载类的时候就必须对字节码进行解密,可以通过findClass读取URL中的字节码,然后加密,最后把字节数组交给defineClass()加载。 + +资源隔离 热部署 代码保护 + ---------------------------------------------------------------------------------------------------------------------