Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导和外部资源(如keytab)文件_Java_Spring Boot_Spring Boot Configuration - Fatal编程技术网

Java Spring引导和外部资源(如keytab)文件

Java Spring引导和外部资源(如keytab)文件,java,spring-boot,spring-boot-configuration,Java,Spring Boot,Spring Boot Configuration,我需要在我的Spring Boot应用程序中加载一些外部资源文件,如下所示 getClass().getClassLoader().getResource("mongoKerberos.Keytab"); 花了一段时间之后,我意识到带有类路径的java命令(如下所示)将无法与SpringBootJAR一起使用 java -cp /config-location/ -jar myApplication.jar 在网上阅读了一些文献后,我了解了两种选择,一种是使用zip布局(基本上用于创建一个

我需要在我的Spring Boot应用程序中加载一些外部资源文件,如下所示

getClass().getClassLoader().getResource("mongoKerberos.Keytab");
花了一段时间之后,我意识到带有类路径的java命令(如下所示)将无法与SpringBootJAR一起使用

java -cp /config-location/ -jar myApplication.jar 
在网上阅读了一些文献后,我了解了两种选择,一种是使用zip布局(基本上用于创建一个胖jar),使用spring boot maven plugin(如下所示)中的配置,该插件使用org.springframework.boot.loader.PropertiesLauncher

           <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <layout>ZIP</layout>
                </configuration>
            </plugin>
另一个选项是保留默认布局(在我的例子中是jar),但更改默认引导加载启动器类并指定属性文件位置,如下所示

java -Dloader.path=/workspace/SpringBoot/config/ -cp SpringBoot.jar org.springframework.boot.loader.PropertiesLauncher
这两种解决方案都有效,但我想知道是否会有任何副作用(如启动时间的增加或运行时的任何其他不良行为)


或者,如果有其他更好的替代解决方案包括外部资源文件,如keytab、some-connection-truststore.jks等

@karthikeyanvaitillingam-感谢您的回复。但是,问题是特定于Spring引导配置的——如何在Spring引导中实现这一点假设通过“keytab”您谈论的是Kerberos,Spring引导中通常的方法是有一个指向资源URL的属性:
myapp.keytab=file:///home/me/.config/keytab
。你甚至可以说
@Value{“myapp.keytab”}Resource keytab
@karthikeyanvaitillingam-谢谢你的回复。但是,问题是特定于Spring引导配置的——如何在Spring引导中实现这一点假设通过“keytab”您谈论的是Kerberos,Spring引导中通常的方法是有一个指向资源URL的属性:
myapp.keytab=file:///home/me/.config/keytab
。你甚至可以说
@Value{“myapp.keytab”}资源keytab
java -Dloader.path=/workspace/SpringBoot/config/ -cp SpringBoot.jar org.springframework.boot.loader.PropertiesLauncher