Как получить доступ к свойству из файла свойств в коде java (Mule ESB) - PullRequest
2 голосов
/ 20 января 2020

Я пытаюсь получить свойство из файла свойств в java коде, написанном в муле.

Class Example {
@NotBlank("message" = "${prop1}")
String key1;
String key2;
}

prop1 - это свойство, сохраненное в файле свойств

prop1 = " 001 | key1 cannot be blank"

Я хочу, чтобы prop1 было решено как 001 | key1 cannot be blank. ${propname} не работает. Я не могу использовать аннотацию значения, так как хочу сохранить значение свойства в сообщении.

1 Ответ

1 голос
/ 21 января 2020

Лучший подход для этого - не зависеть от какого-либо кода, заданного Mule c, и работать со свойством так же, как с любым другим аргументом, просто передавая его в качестве параметра. Поэтому, когда вы создаете экземпляр или вызываете определенный метод, вы просто передаете свойство на стороне Mule:

<java:new class="com.me.Person" constructor="Person(String, Integer)">
    <java:args>#[{
      name: Mule::p('prop1'),
      age: 30
    }]</java:args>
</java:new>

В противном случае вы будете зависеть от того, как будет загружен этот код Java, так как вам потребуется чтобы внедрить экземпляр ConfigurationProperties и использовать его для разрешения вашего свойства:

  @Inject
  private ConfigurationProperties configurationProperties;

  String getProperty(String name) {
     return configurationProperties.resolveStringProperty(name).orElse(null);
  }

Это означает, что ваш код Java должен быть частью модуля SDK, чтобы выполнить внедрение.

...