据我所知,您有2个(ServiceProject和WebProject)maven项目。在ServiceProject中,您要使用WebProject / pom.xml中的属性。问题是Spring对这个文件一无所知。
如果要为多个项目共享这些属性,则选项很少。
1)我首先想到的是创建一个父级maven-project。这将是一个只有一个pom.xml的项目,您可以在properties
部分中定义属性。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>parent</artifactId>
<version>1.0.SNAPSHOT</version>
<properties>
<dna.ws.universign.username>ABC</dna.ws.universign.username>
<dna.ws.universign.password>XYZ</dna.ws.universign.password>
</properties>
</project>
完成此操作后,您可以在其他项目中引用该项目。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>web</artifactId>
<parent>
<groupId>com.test</groupId>
<artifactId>parent</artifactId>
<version>1.0.SNAPSHOT</version>
</parent
</project>
因此,您的父项目的属性会包含在您的实际项目中(在我的示例中为com.tests.web)。
2)说到存储用户名和密码,将它们存储在外部* .properties文件中可能更方便,更自然。在这种情况下,您无需创建父项目。尝试看看maven-properies-plugin
。
无论选择哪种方式,在maven级别定义属性后,都应将其传递给spring config。如果您使用xml配置(如您的文章中所述),则应要求Maven处理带有此类${...}
占位符的文件。只需将此xml放入您的pom.xml中即可:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>spring-config.xml</include>
</includes>
</resource>
</resources>
</build>
spring-config.xml
是一个文件,用于存储配置。之后,可以通过Spring注入属性。
本文链接:https://www.f2er.com/3035996.html