Back to Browse

Versioning using Springboot نسخه‌بندی

Feb 25, 2026
5:29

خوش آمدید. در مراحل قبلی یاد گرفتیم نسخه‌بندی (Versioning) چیست و روش‌های مختلفی برای پیاده‌سازی آن را اجرا کردیم. نکته جالب این است که در Spring Boot 4، قابلیت نسخه‌بندی به‌صورت داخلی (Built-in) در خود Spring Boot وجود دارد. در این مرحله، می‌خواهیم روی استفاده از قابلیت داخلی نسخه‌بندی در Spring Boot تمرکز کنیم. کاری که انجام می‌دهم این است که کنترلر مربوط به نسخه‌بندی Person را که در مرحله قبل ایجاد کرده بودیم، برمی‌دارم و آن را کپی می‌کنم.حالا چند مشکل به وجود خواهد آمد، چون یک URL یکسان برای چند متد مختلف مپ (Mapping) شده است، و این کار درست نیست. کاری که انجام می‌دهیم این است که سریعاً آن‌ها را تغییر می‌دهیم تا تداخل برطرف شود. حالا می‌خواهم از قابلیت داخلی Spring Boot برای نسخه‌بندی استفاده کنم. چطور این کار را انجام دهیم؟ اینجاست که می‌توانیم یک نسخه (Version) اضافه کنیم. می‌توانم بگویم: version = 1 یا 1.0 یا 1.0.0 نوع نسخه‌بندی‌ای که Spring Boot استفاده می‌کند، نسخه‌بندی معنایی (Semantic Versioning) نام دارد. در این روش سه بخش وجود دارد: نسخه اصلی (Major) نسخه فرعی (Minor) نسخه اصلاحی (Patch) برای مثال: 1.0.0 → نسخه ۱ اگر یک بهبود (Enhancement) انجام دهید که تغییر ناسازگار ایجاد نکند و مشکل بزرگی به وجود نیاورد، آن را 1.1.0 می‌نامیم. اگر یک تغییر بسیار بزرگ انجام دهید، احتمالاً آن را 2.0.0 می‌نامید. اگر فقط یک باگ را برطرف کنید، عدد بخش اصلاحی افزایش پیدا می‌کند، مثلاً: 2.0.1 Dependencyهای Spring Boot نیز با همین روش نسخه‌بندی می‌شوند. و حتی برای API هم Spring Boot پیشنهاد می‌کند از همین نوع نسخه‌بندی استفاده شود. به این روش، Semantic Versioning گفته می‌شود. در اینجا ما با نسخه 1.0.0 شروع می‌کنیم. پس این را 1.0.0 می‌نامیم.حالا نکته اینجاست که باید مقدار v1 را در اینجا به version تغییر دهید. یعنی می‌گوییم اینجا جایی است که نسخه قرار می‌گیرد و مقدار نسخه برابر با 1.0.0 است. در این مرحله احتمالاً با یک خطای کامپایل مواجه می‌شوید، بنابراین باید value = را هم اضافه کنیم. حالا URL ما مشخص شده و نسخه برابر با 1.0.0 است. اگر به لاگ‌ها نگاه کنید، باید خطایی ببینید که می‌گوید: "No API version strategy configured." (هیچ استراتژی‌ای برای نسخه‌بندی API پیکربندی نشده است.) حالا فایل application.properties را باز می‌کنم، چون در این فایل می‌توان استراتژی نسخه‌بندی را پیکربندی کرد. spring.mvc.apiversion.use.path-segment=0

Download

0 formats

No download links available.

Versioning using Springboot نسخه‌بندی | NatokHD