🧵 تمام فریمورکهای Spring — نقشهبرداری و توضیح داده شده!
فرقی نمیکند که مشغول ساخت یک REST API باشید، روی معماری microservices کار کنید یا با batch jobs سر و کار داشته باشید — فریمورک Spring برای همه این موارد یک ماژول تخصصی دارد.
اما زیر چتر بزرگ Spring، فریمورکهای زیادی قرار گرفتهاند و بهراحتی ممکن است بین آنها سردرگم شوید. این تصویر، آنها را براساس کاربرد، قابلیتها و ارتباطشان دستهبندی میکند.
فریمورک اصلی برای توسعه سریع اپلیکیشنها
• Auto-configuration
• Embedded servers (Tomcat, Jetty) 🔌
• نیاز بسیار کم به پیکربندی XML
مناسب برای راهاندازی سریع پروژهها با حداقل تنظیمات.
برای ساخت APIهای واکنشی (Reactive) و غیرمسدودکننده
• پشتیبانی از REST و WebSocket
• مبتنی بر Project Reactor
ایدهآل برای اپلیکیشنهای real-time و مبتنی بر stream.
هستهی اصلی و پایهی تمام فریمورکهای Spring
• Dependency Injection (IoC)
• یکپارچگی با JDBC، JPA، JMS
• پشتیبانی از AOP (برنامهنویسی جنبهگرا)
ماژولی برای ایمنسازی وباپها و سرویسها
• پشتیبانی از OAuth2، JWT، CSRF، CORS
• قابلیت تعریف فرآیندهای سفارشی احراز هویت و ورود
امنیت امروز دیگر یک انتخاب نیست — این ماژول آن را سادهتر میکند.
فریمورک کلاسیک برای ساخت اپلیکیشنهای وب
• DispatcherServlet
• پشتیبانی کامل از REST API
• ViewResolverها و Controllerها برای لایه نمایش
برای سادهسازی تعامل با دیتابیس
• پشتیبانی از JPA، MongoDB، Redis
• امکانات صفحهبندی، مرتبسازی، و R2DBC برای دیتابیسهای reactive
برای پردازش حجم زیاد داده به صورت batch
• پردازش تکهای (Chunk-based)
• زمانبندی اجرای job و منطق ادامه از نقطه شکست
• مدیریت تراکنش در پردازشهای سنگین
برای پیادهسازی الگوهای Enterprise Integration
• یکپارچگی با JMS، فایل، ایمیل
• پیکربندی بصری جریان داده
• Message routerها و فیلترها
ویژه معماریهای microservice
• سرویس کشف (Eureka)
• Config Server برای مدیریت پیکربندی مرکزی
• Circuit Breaker (برای resiliency)
• API Gateway، ابزارهای ردیابی مثل Sleuth و Zipkin
برای نوشتن تستهای قابل اطمینان
• MockMVC و @MockBean
• پشتیبانی از دیتابیسهای تعبیهشده مثل H2
درک محل استفاده هر ماژول، به شما کمک میکند معماریهای بهتری طراحی کرده و از تکرار راهحلهای موجود جلوگیری کنید.
چه برای آمادگی مصاحبه برنامهنویسی تلاش میکنید، چه در حال ساخت یک سیستم واقعی هستید — آشنایی با اکوسیستم Spring یک قدرت واقعی است.
⚡️ @javapro_ir✈️ @group_javapro