如何在SpringBoot中配置其他类路径?

2022-09-01 18:57:57

我想做一个独立的Web应用程序。我对SpringBoot有一些问题。

我的应用程序是来自SpringBoot的一个jar文件。

但是我的应用程序通常需要jdbc驱动程序jar。我想为我的应用程序排除jdbc驱动程序jar,并从lib文件夹中读取库jar。

但是 SpringBoot lib 文件夹是 .因此,我想为 jdbc 驱动程序 jar 添加外部类路径 (lib)。BOOT-INF/libfinal static

如何在 SpringBoot 中配置其他类路径。它可用吗?


答案 1

可以使用该参数定义外部 lib 文件夹的位置。此文件夹下的所有 jar 都将添加到类路径中。例如,如果要定义为外部 lib 文件夹,可以执行以下操作:loader.pathC:\extLib

java -Dloader.path=/C:/extLib/ -jar aapName.jar

为此,您需要使用属性启动器。有两种方法可以做到这一点:

备选案文1

更新项目 pom.xml并添加以下标记:

<configuration>  <!-- added -->
  <layout>ZIP</layout> <!-- to use PropertiesLauncher -->
</configuration

有效的构建标记,更新后如下所示:

<build> 
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>  <!-- added -->
                <layout>ZIP</layout> <!-- to use PropertiesLauncher -->
            </configuration>
        </plugin>
    </plugins>
</build>

备选案文2

从命令行启动应用程序时使用属性启动器:

java -cp aapName.jar -Dloader.path=/C:/extLib/ org.springframework.boot.loader.PropertiesLauncher

参考:
如何使用 jarlauncher 将 jar 添加到 SpringBoot 类路径


答案 2

您可以从弹簧靴中参考以下链接:

https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html#executable-jar-property-launcher-features

可以使用 loader.path 属性来定义 lib 文件夹位置