你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Springboot高级

2022/1/2 0:43:16

 

 

 

 

java规范:入口main文件,必须为jar顶层目录

    protected void launch(String[] args, String launchClass, ClassLoader classLoader) throws Exception {
        //用创建的classloader替换
        Thread.currentThread().setContextClassLoader(classLoader);
        this.createMainMethodRunner(launchClass, args, classLoader).run();
    }

run方法点进去

    public void run() throws Exception {
        //mainClassName 就是springboot启动类
        Class<?> mainClass = Class.forName(this.mainClassName, false, Thread.currentThread().getContextClassLoader());
        //反射启动main方法
        Method mainMethod = mainClass.getDeclaredMethod("main", String[].class);
        mainMethod.setAccessible(true);
        mainMethod.invoke((Object)null, this.args);
    }

JDWP java远程调试协议(不管是是什么环境启动)

 

 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5050 -jar demo-0.0.1-SNAPSHOT.jar

 

 

 

LaunchedURLClassLoader 最后继承了Lancher 所以最终是系统加载器加载。