Я пытаюсь добиться чего-то вроде этого:
@Controller
public SomeController {
@CustomConfig("var.a")
private String varA;
@CustomConfig("var.b")
private String varB;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String get() {
return varA;
}
}
CustomConfig будет классом @Interface, который принимает один параметр-значение. Причина, по которой мы не используем @Value, заключается в том, что это будет не файл конфигурации, а API (например, https://getconfig.com/get?key=var.a). Итак, мы собираемся сделать HTTP-запрос для его внедрения.
Пока мне удается заставить что-то работать, только если varA и varB находятся внутри метода get () в качестве параметра, используя ниже в классе, который extends WebMvcConfigurerAdapter
:
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
CustomConfigResolver resolver = new CustomConfigResolver();
argumentResolvers.add(resolver);
}
А внутри CustomComfigResolver.resolveArgument () мы выполняем HTTP-запрос, но это не совсем то, что нам нужно, нам нужно, чтобы он был внедрен как переменная класса.
Есть ли у кого-нибудь опыт решения этой проблемы на уровне переменной класса?
Спасибо