1.java classloader
网上内容较多
2.classworlds简介
(来源:http://codehaus-plexus.github.io/plexus-classworlds/)
classloader较复杂,使用classworlds可简化java类的加载,提供丰富功能
3.classworlds提供功能
3.1classrealm
3.1.1提供类加载功能
- loadclass,加载类,返回Class对象
- addUrl,增加可用加载path
- 配置strategy
- importFrom,可与其他classrealm关联,从其他classrealm加载类
类加载过程
- 从parent加载(委派)
- 使用strategy加载
- 默认selfFirstStrategy先从import加载
- 再从自身加载
- 最后从parent classrealm加载
3.1.2资源加载
getResource:获取单个资源文件,先从base基类加载,再从当前类url加载,最后从parent加载
getResources:可获取所有资源文件
3.2 launch
实现从配置文件配置classrealm
可为其他应用程序提供类加载服务,如maven