Java совет: избегай шаринга данных между потоками
Одна из главных причин багов в многопоточке - общий изменяемый state (shared mutable state). Чем больше потоков трогают одни и те…
Читать далее →
Spring Boot: Лучше использовать глобальные фильтры/интерсепторы только для действительно сквозных (cross-cutting) задач и избегать бизнес-логики. Они выполняются для каждого входящ…
Читать далее →
Spring Boot совет, который спасает от скрытых проблем
В POM-файлах лучше избегать wildcard-исключений для транзитивных
Spring Boot совет, который спасает от скрытых проблем
В POM-файлах лучше избегать wildcard-исключений для транзитивных зависимостей.
Почему это важно?
❌ Wildcard exclusions просто убирают симптом
Вы глушите конфликт, но настоящая проблема — несовпадение версий зависимостей — никуда не исчезает. В итоге:
- сложно отследить источник бага
- неожиданные падения в рантайме
- магические проблемы после обновлений
Это не лечение, это пластырь поверх трещины в фундаменте.
✅ Что делать правильно — использовать явные exclusions
Вместо “выкинуть всё подряд” лучше точно указать, что именно вы исключаете:
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
Spring Boot: не подключайте полный spring-boot-starter-web, если вам нужен только Spring MVC — этот стартер тянет лишние компоненты, например встроенный сервер, который может быть …
Читать далее →
Java Records - это не просто DTO.
Многие думают, что record - только для хранения данных.
Но на практике это полноценный тип, в котором можно добавить бизнес-логику.
Что можно вн…
Читать далее →