无法从另一个模块读取属性

我正在创建一个包含两个模块的项目:服务和Web

在服务中,我正在注入具有在Web模块中定义的属性的bean。属性取决于Web模块中定义的配置文件。

在码头开始时,出现了一个弹簧错误,通知我他无法读取属性,因此无法实例化豆子。

那么如何在Web模块中声明属性并在服务模块中使用它们?

在服务模块中,我正在注入一个使用在另一个模块中声明的属性的bean

<bean id="universignService" 
class="fr.lfm.dna.service.file.document.impl.UniversignServiceImpl"
    autowire="byName" init-method="initWebService" lazy-init="true">
<property name="url" value="${ws.universign.url}">
</property>
<property name="username" value="${dna.ws.universign.username}">
</property>
<property name="password" value="${dna.ws.universign.password}">
</property>
</bean>
a503030714 回答:无法从另一个模块读取属性

据我所知,您有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

大家都在问