1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/sanri-sanri-tools-maven

Клонировать/Скачать
类加载器管理.md 2.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
huangzhr Отправлено 30.12.2021 09:32 a13e6d4

类加载器管理

界面美图

类加载器管理

操作

  • 需要先在输入框填写类加载器的名称 , 然后上传需要加载的类 ;后面上传的 class 会追加到指定的类加载器中
  • 支持三种类型的文件 zip,class,java
  • 上传 DTO 指的是可以不限定严格的类路径,可以使和它上传单个 class 文件, java 文件, 和没有严格类路径的 zip 压缩包,里面包含 class 文件
  • 上传标准DTO 指的是需要严格类路径的 class 压缩包

功能说明

这个用于数据明文展示,是本系统其它模块的支撑模块

20211224 类加载器加强

改为只有一个入口上传文件, 并增强上传的文件类型, 现在支持的文件类型如下, 除 pom ,jar 文件外, 其它的必须保证依赖的类在类加载器中已经存在, 因为认为其它类型的文件所拥有的 class 文件比较少, 将会全部加载 class, jar 不会去全部加载, pom 会自动下载所有依赖

  • zip 文件, 可以包含标准的的类文件结构也可以是平行的类文件结构
  • class 文件, 单个 class 文件
  • java 文件, 单个 java 文件
  • jar 文件, 将添加到类加载器的 url 中
  • pom 文件, 将分析依赖包, 并下载对应依赖项

上传界面变动, 可以把依赖项和 class 类一同上传, 需要展示类加载器名称, 已经加载的类, 文件上传, 上传的文件列表(pom,jar,zip,class,java), 可编辑的 pom 文件

类加载器存储

classloaders[Dir]
  mmclassloader[Dir]
    jars[Dir]   maven 下载的 jar 也放到这个里面,下次加载的时候直接放到类加载器的 url 中
      xx.jar
      commons.jar
      
    classes[Dir]
     com/sanri/xx.class
     com/sanri/domain/xx.class
  twoclassloader[Dir]
     ....

上传处理方式, 不会一开始就把 class 放到 classloader 下面了, 有可能类加载不成功, 导致下次启动异常, 并且加载异常的还删除不掉, 会先把文件放到临时目录, 按照 pom, jar, class 的顺序来加载类, pom 下载的 jar, 和上传的 jar 会直接上传到类加载器目录, 并通过 url 加载到类加载器 但 class 文件会先释放到一个临时目录, 通过加载类的方式加载, 如果所有类全部加载成功, 则会把类全部放到类加载器下面, 否则全部丢弃, 但此时类加载器中还是有加载成功的类, 这个加载成功的类会在下载重启时清除

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/sanri-sanri-tools-maven.git
git@api.gitlife.ru:oschina-mirror/sanri-sanri-tools-maven.git
oschina-mirror
sanri-sanri-tools-maven
sanri-sanri-tools-maven
master