Ответ 1
Как вы определили два основных варианта для ввода конфигурации, используйте либо @Value
для отдельных свойств, либо @ConfigurationProperties
в объекте конфигурации javabean.
Какой из них вы используете, предпочтение отдается. Лично я предпочитаю использовать объект конфигурации.
Использование @ConfigurationProperties
позволяет использовать проверку JSR-303 bean.
Вы также можете написать свою собственную проверку в настройщике вашего javabean, если хотите.
Вы можете аннотировать конфигурацию beans из проектов без spring, что позволяет вам писать легко настраиваемые библиотеки, но не зависит от spring.
Вы можете генерировать метаданные IDE из объектов, которые могут сделать процесс разработки более плавным.
Ниже приведены некоторые рекомендации, рекомендуемые при использовании конфигурации spring.
-
Создайте отдельные объекты
@ConfigurationProperties
для логических компонентов вашего приложения. Постарайтесь сохранить модульность и избегать создания свалки для всей конфигурации приложений. -
Не используйте то же свойство
@Value
в нескольких местах.
Если одна и та же конфигурация необходима в нескольких местах в вашем приложении, вы должны перенести это значение в объект конфигурации.
Использование одного и того же свойства в нескольких аннотациях@Value
затрудняет рассуждение, а также может вызвать неожиданное поведение, если вы определяете значение по умолчанию посредством выражения "SpEL" в одном месте, а не в другом. -
Не определяйте свои собственные свойства в пространстве имен
spring
.
Например, ваше свойствоspring.url
не является одним из свойств, определенных в документации.
Используя одно и то же пространство имен, вы рискуете использовать это имя для чего-то в будущих версиях spring -boot.