Java Spring引导和外部资源(如keytab)文件
我需要在我的Spring Boot应用程序中加载一些外部资源文件,如下所示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布局(基本上用于创建一个
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