Micronaut - заполнитель конфигурации в @Endpoint id игнорирует пользовательское значение - PullRequest
1 голос
/ 19 октября 2019

Я определяю свою конечную точку следующим образом:

@Endpoint(id = '${jupyter.endpoint.path:jupyter/kernel}')
public class KernelEndpoint {

    @Write
    public Map start (request) {
        return [
            "message": "Kernel start request received!"
        ]
    }

}

Когда я запускаю приложение, не передавая никакого значения для jupyter.endpoint.path, конечная точка id правильно устанавливается на значение по умолчанию jupyter/kernel.

Однако, если я передам пользовательское значение, например, так:

def endpointPath = "command/jupyter/start-kernel"
def serverUrl = "https://localhost:8080"
// create application context
ApplicationContext applicationContext = ApplicationContext.run([
    'jupyter.endpoint.path': endpointPath,
    'jupyter.server-url': serverUrl
], Environment.TEST)

, конечная точка id будет игнорировать пользовательское значение и все равно будет использовать значение по умолчанию:

 assert applicationContext
    .getBeanDefinition(KernelEndpoint)
    .getAnnotation(Endpoint)
    .stringValue("id")
    .get() == endpointPath

Я не смог найти в документах ничего, что так или иначе указывало бы, должно ли это работать. Кто-нибудь знает, должно ли работать то, что я пытаюсь, и если да, то почему это не для меня?

...