Проекция Spring GraphQL не вызывает исключения распознавателя компонентов

У меня есть приложение Spring Boot с библиотекой Spring для GraphQL, и мне нужно изменить возвращаемый объект. Итак, я создал и зарегистрировал класс проекции, ссылаясь на мой метод компонента:

      public interface MyEntityProjection {

    @Value("#{@myBean.getName()}")
    public String getName();
}

Но это приводит к org.springframework.expression.spel.SpelEvaluationException: EL1057E: No bean resolver registered in the context to resolve access to bean 'myBean'при выполнении запроса. Вероятно, bean-resolver нужно как-то зарегистрировать, но в документации нет информации https://docs.spring.io/spring-graphql/docs/1.0.0-SNAPSHOT/reference/html/

Простое приложение, иллюстрирующее мою проблему: https://github.com/omichal/spring-graphq-no-bean-resolver

1 ответ

К сожалению, это очень самоуверенное поведение самого фреймворка.
Вы должны добавить к заклинанию target. В вашем случае это будет:

      @Value("#{target.name}")

По умолчанию фреймворк вызывает исходный метод bean-компонента getName — вам не нужно помещать метод get.

Другие вопросы по тегам