Я хочу программно установить пути для службы отдыха. У меня есть метод бина, который имеет все пути.
public List<String> getSubscribeChannelsForRest() { .. }
Это служба отдыха
@RestController
public class RestMessageController {
@PostMapping(
path = { "#{somebean.getSubscribeChannelsForRest()[0]}",
"#{somebean.getSubscribeChannelsForRest()[1]}",
"#{somebean.getSubscribeChannelsForRest()[2]}"
})
public String processMessage(@RequestBody String messageBody, HttpServletRequest request) { .. }
Приведенный выше код работает, но я хочу избежать жесткого кодирования номеров массивов. Вот что я попробовал.
@PostMapping(
path = { "#{somebean.getSubscribeChannelsForRest()}",
Это не работает, потому что пружинный метод RequestMappingHandlerMapping.resolveEmbeddedValuesInPatterns (String [] pattern) принимает вышеуказанный SpEL как массив из одного элемента. Я проверил журналы трассировки, и все элементы в данном списке были объединены.