Spring получает свойства из другого модуля. Почему? - PullRequest
0 голосов
/ 11 марта 2020

Мой проект maven имеет три модуля:

Dummy-project
  - Module A
    - Module A1
    - Module A2
      - src/main
        - java
          - HttpMetaDataUtil.java
        - resources
          - config/beta
            - application.properties
  - Module B
    - src/main
        - resources
          - config/beta
            - application.properties
  - Module C

В модуле A2, используя файл HttpMetaDataUtil. java, я хочу прочитать содержимое из файла свойств (находящегося только внутри модуля A2).

HttpMetaDataUtil. java

@Getter
@Setter
@Component
@PropertySource("classpath:config/beta/application.properties")
@ConfigurationProperties(prefix = "api.verification")
public class HttpMetaDataUtil {

    private Map<String, String> smartCard;


}

Модуль A2 / src / main / resources / config / beta / application.properties

# SmartCard related properties
api.verification.smartCard.path=https:dummy_data
api.verification.smartCard.retryDelay=1000
api.verification.smartCard.serviceTimeout=30000

Но карта SmartCard устанавливается в ноль.

Когда я помещаю вышеуказанную конфигурацию свойств в Модуль B / src / main / resources / config / common / application.properties, она берет свойства из этот файл.

Модуль B / src / main / resources / config / beta / application.properties

# SmartCard related properties
api.verification.smartCard.path=https:dummy_data
api.verification.smartCard.retryDelay=1000
api.verification.smartCard.serviceTimeout=30000

Это означает, что HttpMetaDataUtil. java (находится в модуле A2) имеет установленный путь к классу для модуля B.

Я проверил его, изменив строку @ PropertySource в HttpMetaDataUtil. java на @PropertySource("classpath:config/beta/application_new.properties") и создание application_new.properties файла только в модуле A2 , и это вследствие исключения fileNotFound.

java.io.FileNotFoundException: class path resource [config/beta/application_new.properties] cannot be opened because it does not exist

Когда я создал файл application_new.properties также в модуле B , он выбирает свойства из этого файла.

Может кто-нибудь сказать, почему класс модуля A2 выбирает свойства из модуля B? Что-то, чего мне не хватает, связано с classpath?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...