Есть ли значение для Sprint Boot @ConfigurationProperties, совместимое с Eclipse IDE и InteliJ IDEA? - PullRequest
0 голосов
/ 07 февраля 2020

Наличие простого приложения Sprint Boot с включенной конечной точкой активатора работоспособности позволяет указывать и связывать такое свойство в application.properties (одним из следующих принятых способов):

# Eclipse IDE
management.endpoint.health.show-details=when-authorized
# or
# InteliJ IDEA
management.endpoint.health.show-details=when_authorized

Значение это свойство относится к типу Enum.

Оба варианта принимаются из-за возможности Relaxed Binding в Spring Boot @ConfigurationProperties аннотации.

Хотя оба значения действительный с точки зрения сборки Spring и Maven, каждая из двух IDE будет только предлагать (автозаполнение, указатель мыши, ctrl-click-navigate-to-definition) свою собственную версию значения свойства и сообщать об ошибке, если используется другой.

Есть ли способ сделать оба мира счастливыми?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Это известная проблема в IDEA. Пожалуйста, проголосуйте / следуйте: https://youtrack.jetbrains.com/issue/IDEA-171730

0 голосов
/ 10 февраля 2020

Найдена версия, которая делает всех (почти) счастливыми (Maven, InteliJ IDEA, Eclipse):

management.endpoint.health.show-details=WHEN_AUTHORIZED

Реализация Spring Boot определяет это следующим образом, и с помощью этой формы почти все счастливы.

Eclipse IDE *, если вы наберете "W", автозаполнение будет следовать за заглавными буквами * и при наведении указателя мыши, и при навигации по коду

InteliJ IDEA * автозаполнение никогда не предложит заглавная версия (но она не будет отображать ошибку при ее использовании) * и всплывающая документация, и навигация по коду работают

и Maven это не волнует, поскольку Spring Boot использует здесь правила упрощенного связывания.

...