gpt4 book ai didi

java - spring 4 @PropertySource 相对路径

转载 作者:行者123 更新时间:2023-11-30 08:12:53 26 4
gpt4 key购买 nike

我有一个文件夹。这个文件夹中有一个 jar 应用程序。我在这个文件夹中还有一个属性文件。我的 session 。类是:

@Configuration
@Import({com.blabla.MyClass.class})
@ComponentScan(basePackages = "com.blabla")
**@PropertySource("file:///worker.core.properties")**
@EnableTransactionManagement

public class MainConfig {
@Autowired
private Environment env;

并且这个声明没有看到我的文件,但是它在同一个目录中。如何指定相对路径,例如@Import 注释?谢谢

最佳答案

所以解决方案是基于这样一个事实,即我们可以通过在 list 文件中指定项目来扩展类路径。所以我们需要

1) 在/src/main/resources 中保留属性文件

2) 从最终 jar 中排除它

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
<archive>
<manifest>
<mainClass>com.blabla.daemon.MainListener</mainClass>
<classpathPrefix>lib/</classpathPrefix>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>

3) 在jar外建一个文件夹conf

4) 使用 maven 从资源文件夹复制属性文件

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/conf</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

5) 指定指向 conf 文件夹的 list 文件(步骤 1 的一部分 - 请参阅此处)

 <archive>
<manifest>
<mainClass>com.blabla.daemon.MainListener</mainClass>
<classpathPrefix>lib/</classpathPrefix>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>

关于java - spring 4 @PropertySource 相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com