پرش به محتوای اصلی
مسیر تخصصی جاوا و Spring
درخواست پروژهتدریس خصوصیارتباط با ماراهنما
جاواپرو v1.2.34یاد بگیر، تمرین کن، حرفه‌ای بساز
خانهدوره‌هاآموزش رایگانوبلاگمدرس‌هاخدمات
خانهانتشار Spring Boot 4 — تحلیل کامل ۱۱ تغییر مهم!
وبلاگ »

انتشار Spring Boot 4 — تحلیل کامل ۱۱ تغییر مهم!

این نسخه جدید Spring Boot 4 بر پایه Spring Framework 7 با ۱۱ تغییر بزرگ منتشر شده است؛ از کنترل نسخه شیک و تزریق Bean منعطف گرفته تا بهبود Null-Safety، ساخت آسان HTTP Proxy، پشتیبانی از GraalVM Native و Jackson 3.x، ارتقاء Servlet و WebSocket و حذف ویژگی‌های …

۴ دقیقه مطالعهوبلاگ »آموزش جاوا و انجام پروژه های برنامه نویسی
انتشار Spring Boot 4 — تحلیل کامل ۱۱ تغییر مهم!
محتوای منتخب جاواپرو

خلاصه مطلب

این نسخه جدید Spring Boot 4 بر پایه Spring Framework 7 با ۱۱ تغییر بزرگ منتشر شده است؛ از کنترل نسخه شیک و تزریق Bean منعطف گرفته تا بهبود Null-Safety، ساخت آسان HTTP Proxy، پشتیبانی از GraalVM Native و Jackson 3.x، ارتقاء Servlet و WebSocket و حذف ویژگی‌های …
نوع محتوامقاله آموزشی
موضوعوبلاگ »
زمان مطالعه۴ دقیقه مطالعه
آخرین ویرایش۱۹ مرداد ۱۴۰۴
انتشار نسخه جدید اسپرینگ بوت تحت عنوان Spring Boot 4 در این مقاله برنامه نویسی جاوا کامل آن را بررسی کرده ایم
انتشار نسخه جدید اسپرینگ بوت تحت عنوان Spring Boot 4 در این مقاله برنامه نویسی جاوا کامل آن را بررسی کرده ایم

آیا اخیراً متوجه شده‌اید؟ وقتی یک پروژه جدید Spring Boot ایجاد می‌کنیم، اکنون گزینه‌ای برای پیش‌نمایش Spring Boot نسخه 4.0.0 وجود دارد، همان‌طور که در تصویر زیر نشان داده شده است:

جزییات انتشار نسخه جدید Spring Boot 4
جزییات انتشار نسخه جدید Spring Boot 4

نسخه جدید Spring Boot 4 بر پایه فریم‌ورک تازه معرفی‌شده Spring Framework 7.0.0 ساخته شده است.

آموزش فریمورک spring boot 4
آموزش فریمورک spring boot 4

خب، اینجاست که سؤال پیش می‌آید: تغییرات مهم در نسخه جدید چیست؟ در ادامه، پیش‌نمایشی از این تغییرات را به شما نشان می‌دهم.

📚 آموزش‌های پیشنهادی

🚀 آموزش Spring Core🚀 آموزش Spring Boot🚀 آموزش Spring security

۱. کنترل نسخه (Version Control) شیک و کارآمد

در نسخه جدید، پشتیبانی زیبا و رسمی از نسخه‌بندی API اضافه شده است. این قابلیت به توسعه‌دهندگان اجازه می‌دهد از طریق پارامتر version در annotation @RequestMapping نسخه‌های مختلف یک API را پیاده‌سازی کنند.

نمونه کد این قابلیت به شکل زیر است:

import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; ​ @RestController @RequestMapping("/api") public class VersionedController { ​ @RequestMapping(value = "/user", version = "1") public String getUserV1() { // Version 1 implementation System.out.println("Version 1"); return "Version 1"; } ​ @RequestMapping(value = "/user", version = "2") public String getUserV2() { // Version 2 implementation System.out.println("Version 2"); return "Version 2"; } }

نتیجه اجرا:

اموزش فریمورک Spring boot 4
اموزش فریمورک Spring boot 4

۲. تزریق Bean راحت‌تر و منعطف‌تر

در نسخه جدید، قراردادی تازه به نام BeanRegistrar معرفی شده است که امکان ثبت Bean‌ها را به شکلی منعطف‌تر فراهم می‌کند. با استفاده از این قابلیت، می‌توانید چندین Bean را به‌طور هم‌زمان ثبت کنید.

نمونه کد استفاده از این ویژگی به شکل زیر است:

import org.springframework.beans.factory.BeanRegistrar; import org.springframework.beans.factory.BeanRegistry; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.core.env.Environment; ​ @Configuration @Import(MyBeansRegistrar.class) public class MyConfiguration { } ​ class MyBeansRegistrar implements BeanRegistrar { ​ @Override public void register(BeanRegistry registry, Environment env) { registry.registerBean("user", User.class); if (env.matchesProfiles("dev")) { registry.registerBean(Order.class, spec -> spec .supplier(context -> new Order("order_001"))); } } } ​ class User { private String name; } ​ class Order { public Order(String name) { this.name = name; } ​ private String name; }

تست واحد (Unit Test):

جزییات انتشار نسخه اسپرینگ بوت 4
جزییات انتشار نسخه اسپرینگ بوت 4

۳. بهبود قابلیت Null-Safety

در نسخه جدید، از annotation‌های کتابخانه JSpecify برای اعلام وضعیت ایمنی در برابر مقدار null در API استفاده شده است. در این روش:

@Nullable مشخص می‌کند که یک مقدار می‌تواند null باشد.

@NonNull مشخص می‌کند که یک مقدار نمی‌تواند null باشد.

این قابلیت همراه با IntelliJ IDEA کار می‌کند تا در صورت وجود مشکل، هشدار یا پیام خطا نمایش داده شود. نمونه کد زیر این قابلیت را نشان می‌دهد:

import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; ​ public class Person { private String name; ​ public void setName(@NonNull String name) { this.name = name; } ​ @Nullable public String getName() { return this.name; } }

نمایش در IDEA:

انتشار Spring Boot 4 — تحلیل کامل ۱۱ تغییر مهم!
تصویر مرتبط با انتشار Spring Boot 4 — تحلیل کامل ۱۱ تغییر مهم!

(برای استفاده از این قابلیت نیاز به نسخه ۲۰۲۴ یا بالاتر IDEA دارید)

۴. ایجاد آسان HTTP Proxy

در نسخه جدید، annotation جدیدی به نام @ImportHttpServices اضافه شده است که ساخت پروکسی برای اینترفیس‌های HTTP را بسیار ساده‌تر می‌کند.

با استفاده از این قابلیت، می‌توانید به‌راحتی گروه‌های کاملی از سرویس‌های HTTP را تعریف، شناسایی و پیکربندی کنید.

نمونه کد زیر نشان می‌دهد که چگونه می‌توان از این ویژگی استفاده کرد

@Configuration(proxyBeanMethods = false) @ImportHttpServices(group = "weather", types = {FreeWeather.class, CommercialWeather.class}) @ImportHttpServices(group = "user", types = {UserServiceInternal.class, UserServiceOfficial.class}) static class HttpServicesConfiguration extends AbstractHttpServiceRegistrar { @Bean public RestClientHttpServiceGroupConfigurer groupConfigurer() { return groups -> groups.filterByName("weather", "user") .configureClient((group, builder) -> builder.defaultHeader("User-Agent", "My-Application")); } }

5. هفت تغییر مهم دیگر

سایر قابلیت‌ها و به‌روزرسانی‌های این نسخه عبارت‌اند از:

ارتقاء عبارات SPEL: اکنون عبارات SPEL از ویژگی null-safety و همچنین عملگر Elvis (?:) پشتیبانی می‌کنند، همان‌طور که در کد زیر نشان داده شده است:

@Value("#{systemProperties['pop3.port'] ?: 25}")

این کد مقدار ویژگی (property) pop3.port را از تنظیمات سیستم دریافت می‌کند و اگر این ویژگی تعریف نشده باشد، مقدار ۲۵ را به‌طور پیش‌فرض تزریق می‌کند.

پشتیبانی از GraalVM Native:

با استفاده از فناوری Spring AOT، می‌توان برنامه‌ها را به تصاویر بومی (Native Images) کامپایل کرد که این کار باعث کاهش چشمگیر زمان راه‌اندازی برنامه می‌شود.

پشتیبانی از Jackson 3.x:

پشتیبانی از نسخه Jackson 2.x حذف شده و به نسخه Jackson 3.x ارتقاء یافته است.ارتقاء Servlet و WebSocket:

در این نسخه از Servlet 6.1 و WebSocket 2.2 به‌عنوان زیرساخت اصلی برنامه‌های وب استفاده می‌شود. این موضوع به این معناست که برنامه‌ها باید روی جدیدترین کانتینرهای Servlet مانند Tomcat 11+ و Jetty 12.1+ اجرا شوند.بهینه‌سازی HttpHeaders:

عملیات مربوط به HttpHeaders اکنون به شکل زیر انجام می‌شود:

@RestController public class MyController { ​ @GetMapping("/headers") public ResponseEntity handleRequest(HttpHeaders headers) { // Old way (deprecated) // headers.getFirst("X-Custom-Header"); ​ // New way String value = headers.firstValue("X-Custom-Header").orElse(null); ​ // Iterate over all headers headers.forEach((name, values) -> { System.out.println(name + ": " + values); }); ​ return ResponseEntity.ok("Processed"); } }

ویژگی‌های حذف‌شده:

موارد زیر در نسخه جدید حذف یا منسوخ شده‌اند:

فضای نام (Namespace) پیکربندی XML برای Spring MVC منسوخ شده و استفاده از پیکربندی جاوا (Java Configuration) جایگزین آن شده است.

پشتیبانی از JUnit 4 در Spring TestContext Framework منسوخ شده است.

پشتیبانی از Jackson 2.x منسوخ و نسخه Jackson 3.x جایگزین آن شده است.

کتابخانه Spring JCL به‌طور کامل متوقف شده است.

افزایش حداقل نیازمندی‌های محیط اجرا:

Jakarta EE 11 (نیازمند Tomcat نسخه 11 یا بالاتر)

Kotlin 2.x

JSONassert 2.0

GraalVM 23

برای اطلاعات بیشتر درباره تغییرات و ارتقاء، به وب‌سایت رسمی مراجعه کنید:

Spring Framework 7.0 Release Notes

جمع‌بندی

برنامه‌نویسی یک حرفه با یادگیری مادام‌العمر است. تغییرات در فریم‌ورک‌ها و ابزارها باعث می‌شود روش‌های کارآمدتر و کاربرپسندتری در اختیار ما قرار گیرد که این امر برای توسعه‌دهندگان بسیار مفید است.

پس بیایید این تغییرات را یاد بگیریم، از آن‌ها استفاده کنیم و با هم تجربه‌شان کنیم.

منبع: این مقاله از سایت Medium و نوشته‌ی Oliver Foster گرفته شده است.

برچسب‌هاوبلاگ »مقالات جاوا »Spring BootSpring Boot 4ویژگی های Spring Boot 4ویژگی Spring Boot 4Spring Boot 4 چیستکاربرد Spring Boot 4اسپرینگ بوتاسپرینگ بوت 4ویژگی اسپرینگ بوت 4انتشار اسپرینگ بوت 4پروژه جدید Spring Bootپروژه Spring Boot
دسترسی سریع

فهرست مطلب

۱📚 آموزش‌های پیشنهادی۲۱. کنترل نسخه (Version Control) شیک و کارآمد۳۲. تزریق Bean راحت‌تر و منعطف‌تر۴۳. بهبود قابلیت Null-Safety۵۴. ایجاد آسان HTTP Proxy۶5. هفت تغییر مهم دیگر۷پشتیبانی از GraalVM Native:۸با استفاده از فناوری Spring AOT، می‌توان برنامه‌ها را به تصاویر بومی (Native Images) کامپایل کرد که این کار باعث کاهش چشمگیر زمان راه‌اندازی برنامه می‌شود.۹پشتیبانی از Jackson 3.x:۱۰پشتیبانی از نسخه Jackson 2.x حذف شده و به نسخه Jackson 3.x ارتقاء یافته است.ارتقاء Servlet و WebSocket:۱۱در این نسخه از Servlet 6.1 و WebSocket 2.2 به‌عنوان زیرساخت اصلی برنامه‌های وب استفاده می‌شود. این موضوع به این معناست که برنامه‌ها باید روی جدیدترین کانتینرهای Servlet مانند Tomcat 11+ و Jetty 12.1+ اجرا شوند.بهینه‌سازی HttpHeaders:۱۲ویژگی‌های حذف‌شده:۱۳افزایش حداقل نیازمندی‌های محیط اجرا:۱۴جمع‌بندی
ادامه مسیر

پیشنهاد جاواپرو

موضوع را با آموزش‌های مرتبط ادامه دهید و نکته‌های کاربردی را در مسیر خود نگه دارید

مشاهده دوره‌ها
مطالب پیشنهادی

ادامه مطالعه

xدسته‌بندی نشده
۱۱ دی ۱۳۹۸ مطالعه کوتاه

x

پادکست شماره 3 – راه های کسب درآمد از برنامه نویسی

مطالعه مطلب
پادکست شماره 3 - راه های کسب درآمد از برنامه نویسیپادکست
۲۹ اردیبهشت ۱۴۰۴ پادکست آموزشی

پادکست شماره 3 - راه های کسب درآمد از برنامه نویسی

در این پادکست برنامه نویسی به شیوه ها و راه های کسب درآمد از برنامه نویسی پرداخته ایم. یک کاغذ و قلم بردارید و به پادکست گوش بدید.

شنیدن پادکست
پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟پادکست
۲۹ اردیبهشت ۱۴۰۴ پادکست آموزشی

پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟

در این پادکست برنامه نویسی یاد میگیریم که چگونه وارد فضای برنامه نویسی شویم و تخصص برنامه نویسی را به دست آوریم.

شنیدن پادکست
جاواپرومرجع تخصصی یادگیری و توسعهٔ جاوا

تجربه‌ای منظم، ساده و حرفه‌ای برای یادگیری عمیق جاوا، Spring و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

همه دوره‌هاآموزش رایگانمسیر یادگیریمدرس‌ها

جاواپرو

درباره ماخدمات تخصصیدرخواست پروژهتدریس خصوصیبلاگ فنیرپورتاژ آگهی

پشتیبانی

تماس با ماپرسش‌های متداولقوانین و حریم خصوصیبروزرسانی‌های جاواپروثبت تیکت

مجوزها

نماد اعتمادنماد اعتماد
خرید امنپرداخت فقط در درگاه رسمیپشتیبانی آموزشیمسیر ارتباط شفاف و پیگیری‌پذیردسترسی پایداروب‌اپ واکنش‌گرا روی همه دستگاه‌ها
© ۱۴۰۵ جاواپرو؛ همه حقوق محفوظ استتوسعه توسط پایاپینگ
خانهدوره‌هاسبد