zoukankan      html  css  js  c++  java
  • Spring Boot打war包和jar包的目录结构简单讲解

    Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示:

    1、war包目录结构分析
    WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。

    WAR包标准目录结构:

    说明:

    1、index.jsp[可选]

    2、METAINF[MAVEN自动生成目录]

    3、WEB-INF[必含]

    ①classes目录:存放Java类文件

    ②lib目录:所需要的jar包

    ③web.xml:war的描述文件

    4、subdirectories[可选目录]

          存放一些网页和照片,如:html,jsp,js,jpg等等。

    2、jar包目录结构分析
    example.jar
     |
     +-META-INF
     |  +-MANIFEST.MF
     +-org
     |  +-springframework
     |     +-boot
     |        +-loader
     |           +-<spring boot loader classes>
     +-BOOT-INF
        +-classes
        |  +-mycompany
        |     +-project
        |        +-YourClasses.class
        +-lib
           +-dependency1.jar
           +-dependency2.jar
    说明:

    SpringBoot提供的bootstrap的类是放到包的最外面,比如上面的org.springframework.boot.loader。

    应用程序的代码则是需要放到BOOT-INF/classes目录下面;然后应用程序依赖的其他的jar包文件需要放到BOOT-INF/lib目录下。
    当这个jar作为standardalone的程序运行时(没有放到container),SpringBoot会在生成的META-INF/MANIFEST.MF里面将Main-Class设置成org.springframework.boot.loader.JarLauncher,JarLauncher类会创建一个spring自己的ClassLoader: LaunchedURLClassLoader, 这个classloader 会就能通过URL来加载上面BOOT-INF/lib里面所依赖的包,并且通过反射Manifest里面的Start-Class里面定义的类,然后invoke这个类里面的main方法。



    参考链接:https://blog.csdn.net/chao821/article/details/88650674

  • 相关阅读:
    indexDB
    跨域 iframe和父页面的通信
    目标
    向往,热情,态度
    dns-prefetch/prefetch/preload/defer/async
    exports 和module.exports转
    【vue】--利用vue-cli--搭建项目------1912--(另一个种)
    【原生】 微任务和宏任务
    【vue】--路由解耦 传值的方式
    【vue】 vue中的query 路由传值的方式
  • 原文地址:https://www.cnblogs.com/xiohao/p/11965971.html
Copyright © 2011-2022 走看看