Как стать автором
Обновить

Комментарии 5

а чего это в 21 веке мы всё еще не перевели наш проект на Java-based конфигурации и наши разработчики постоянно правят XML?

XML конфигурация — это средство времени выполнения. Аннотации — времени компиляции. Они обрабатываются в разные моменты. Если вам не нужна конфигурация в runtime — да, для вас Java-based конфигурации конечно же логичнее (я пожалуй соглашусь, что такие кому она нужна — весьма редки, но у меня таки было пару полезных применений). И кстати, у большей на вид части ваших ограничений реализации ноги растут именно отсюда.

>Мое лично мнение, что любой Spring-проект рано или поздно стоит перевести на Java-based конфигурацию
Таки не любой. Хотя идея вполне хороша, и если переводить — то наверное стоит это делать автоматически, насколько возможно.

Совсем не любой. У меня есть проект, который используется в нескольких компаниях. И, благодаря XML конфигурации, мне не нужно перекомпилировать приложение под каждого клиента. Хотя постоянно есть желание перейти на конфигурацию через код, каждый раз понимаешь, что это повредит конфигурябельности.

Ну я примерно этим же и занимался. Только у меня скажем клиент — это на самом деле классы для доступа на хадуп кластер, и там есть разные версии оного хадупа, с разным набором зависимостей, и примерно одним API. И подгрузить контекст динамически в зависимости от версии — самое милое дело.

Я давно уже на Spring не работал. Но на сколько помню, Java-based != Аннотации.

В Java-based можно вполне себе код писать, и это runtime.

Вот на сколько это полная замена XML, не уверен (имхо, полная замена + удобства).

Ну да, я говорил про аннотации, но в общем это не сильно меняет дело. Разница между рантаймом и временем компиляции кое-какая все равно останется, в частности, далеко не всегда у вас в наличии есть весь код всех классов, иногда приложение собирается из модулей, которые доступны и известны в рантайме. И классы некоторые становятся известны тогда же. И xml файлы конфигурации можно вполне (и я делал так много раз) подгружать динамически.

docs.spring.io/spring-framework/docs/5.0.0.RELEASE/spring-framework-reference/core.html#beans-java

Ну вот хоть сюда загляните.

1.12. Java-based container configuration
1.12.1. Basic concepts: Bean and @Configuration
The central artifacts in Spring’s new Java-configuration support are @Configuration-annotated classes and Bean-annotated methods.

Я не исключаю что тоже что-то забыл, но где тут не про аннотации?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории