Comments 2
Если вам в обработке нужна каждая ms быстродействия - не используйте аннотации для таких вещей.
А если в проде критично экономия ресурса для поднятия обработчиков - не используйте SpringBoot вообще.
А если все это не нужно, да.. конечно на SpringBoot писать удобнее.
Но, как то ради интереса один сервис написал и на Spring и на просто java.
Разница в объеме кода где то %30. На Spring лаконичнее и в целом читаемей.
Разница в скорости старта от запуска (относительно дохлая виртуалка для тестов) 1.2 сек и 5 сек (Spring). Проверка прав доступа через аннотaции (Spring) vs фильтр (grizzly http) - разница в 3ms не в пользу аннотаций. Логирование вызова HTTP API через аннотацию сразу добавили 5ms на вызов.
Разница между hibernate+Spring обертка и использованием голого jdbc - от 0 до 10ms (но все равно jdbc однозначно выигрывает).
Казалось бы мелочь. Но это не так для высоконагруженных систем.
Кто то скажет, что на быстром серваке разница не ощутима. Может быть. Но не когда на проме под 500 сервисов поднимается. Особенно если на холодную.
И не слушал бы я на HighLoad выступление докладчика как они ускоряли запуск Spring приложений и какими методами. Не просто так проблему решали. А ресурсов сервера не хватало на старт.
Мне показалось, что введение этих методов все одно на 100% проблему не решает но создает такой геморой эксплуатации, что это перекрывает "мне комфортно писать на Spring" разработчиков.
Предчувствую, что сейчас налетят и заклюют любители Spring :)
Сразу скажу, мне на Spring комфортнее писать. Но не комфортно участвовать в ночных сборищах разборов инцидентов с нехваткой ресурсов и т.п. и решение проблем "а что делать" в ночное время или в стрессе "все пропало.. простой"
Введение в Spring AOP на примере кастомизации логирования