В Spring Cloud Gateway лимит задаётся фильтром шлюза; в Istio — на уровне Envoy. Оба подхода могут ограничивать общий трафик, но отличаются местом исполнения и управлением политиками.
Да, Kafka poll-loop можно отделить от workers обычными средствами Java: ограниченной очередью и передачей результатов обратно. Отсутствие Spring и БД не отменяет правил offsets, rebalance и повторной доставки.
Передавайте конфигурацию при запуске: через environment variables, смонтированный конфигурационный файл или secret manager. Образ должен оставаться одинаковым для разных окружений и не содержать пароль БД.
Aware-интерфейсы позволяют bean получить через callback сведения об инфраструктуре Spring: имя, BeanFactory, ApplicationContext, Environment и другие объекты. Aware сам является маркерным суперинтерфейсом.
Можно ограничить URL через SecurityFilterChain и защитить методы через @PreAuthorize после включения @EnableMethodSecurity. Роли должны проверяться на сервере, а не только скрывать элементы интерфейса.
Используйте DelegatingSecurityContextExecutor или DelegatingSecurityContextRunnable: они переносят текущий SecurityContext в задачу и очищают его после выполнения. Обычный ThreadLocal сам в пул не переносится.
В типичном жизненном цикле bean создаётся, получает зависимости, проходит post-processors и init callbacks, после чего может быть выдан как прокси. Spring AOP использует JDK dynamic proxy либо class-based CGLIB proxy.
Да: можно добавить HealthIndicator и включить его в health group readiness или liveness. Внешние общие зависимости обычно не добавляют в liveness, чтобы их сбой не вызвал массовые перезапуски.
Lazy initialization откладывает создание bean до необходимости. @Lazy в точке внедрения может подставить прокси и разорвать цикл создания, но не устраняет саму архитектурную зависимость.
Starter подключает согласованный набор зависимостей, а автоконфигурация условно регистрирует beans по classpath, настройкам и уже объявленным компонентам. Это набор правил, а не скрытая генерация бизнес-логики.
Инициализацию Spring-контекста запускает код создания и refresh контекста, а не объект аннотации. В Spring Boot точкой входа обычно служит SpringApplication.run с основным классом приложения.
Для proxy-based аннотаций Spring метод B должен вызываться через Spring-прокси. Практичный вариант — вынести B в отдельный bean и внедрить его в bean с методом A.