Программная настройка свойстваJAVA

Программисты JAVA общаются здесь
Anonymous
Программная настройка свойства

Сообщение Anonymous »

В моем микросервисе micronaut я пытаюсь установить свойство программно, а не добавлять его в файл application.yml. Я предоставил свой код ниже, а также ошибку, которую я получаю. Как это исправить или есть другой способ добиться этого?
Код:

Код: Выделить всё

import io.micronaut.context.env.ActiveEnvironment;
import io.micronaut.context.env.PropertySource;
import io.micronaut.context.env.PropertySourceLoader;
import io.micronaut.context.event.ApplicationEventListener;
import io.micronaut.core.io.ResourceLoader;
import jakarta.inject.Singleton;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

@Singleton
public class CustomConfigSource implements PropertySourceLoader {

@Override
public Optional
 load(String resourceName, ResourceLoader resourceLoader) {

Map properties = new HashMap();
properties.put("this.is.property.name", "value");
return Optional.of(PropertySource.of("custom", properties));
}

@Override
public Optional loadEnv(String resourceName, ResourceLoader resourceLoader, ActiveEnvironment activeEnvironment) {
return Optional.empty();
}

@Override
public Map read(String name, InputStream input) throws IOException {
return null;
}
}
Доступ:

Код: Выделить всё

@Property(name = "this.is.property.name")
private String myProperty;
Ошибка:

Код: Выделить всё

io.micronaut.http.server.RouteExecutor: Unexpected error occurred: Failed to inject value for field [myProperty]
Я попытался добавить журналы и обнаружил, что методы внутри CustomConfigSource, такие как load, loadEnv, не вызываются.

Подробнее здесь: https://stackoverflow.com/questions/784 ... g-property

Вернуться в «JAVA»