[英]spring 4 @PropertySource relative path
我有一個文件夾。 在此文件夾中還有一個jar應用程序。 另外,我在此文件夾中有一個屬性文件。 我的朋友 類是:
@Configuration
@Import({com.blabla.MyClass.class})
@ComponentScan(basePackages = "com.blabla")
**@PropertySource("file:///worker.core.properties")**
@EnableTransactionManagement
public class MainConfig {
@Autowired
private Environment env;
而且此聲明看不到我的文件,但它在同一目錄中。 如何指定相對路徑,例如在@Import批注中? 謝謝
因此,該解決方案基於以下事實:我們可以通過在清單文件中指定項目來擴展類路徑。 所以我們需要
1)將屬性文件保留在/ src / main / resources中
2)將其從最終罐中排除
<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)在罐子外面制作一個文件夾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文件夾(步驟1的一部分-參見此處)
<archive>
<manifest>
<mainClass>com.blabla.daemon.MainListener</mainClass>
<classpathPrefix>lib/</classpathPrefix>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
</archive>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.