جاواپرو | برنامه نویسی جاوا | Java
5.89K subscribers
1.15K photos
158 videos
383 files
1.3K links
🎓آکـــــــــادمی جاواپـــــــــــــــرو
آموزش پیش نیازهای برنامه نویسی
آموزش مقدماتی تا پیشرفته جاوا
آموزش Spring Boot
سفارش پروژه ، دوره و تدریس خصوصی: @rzutab
مشاهده دوره ها و ثبت نام👇
wwww.academyjavapro.com
گروه جاوا : @group_javapro
Download Telegram
جاواپرو | برنامه نویسی جاوا | Java pinned «📚لیست دوره های رایگان آکادمی جاواپرو آموزش برنامه نویسی سوکت با زبان جاوا آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX آموزش ساخت برنامه آزمون تستی با JavaFX آموزش ساخت ربات تلگرام ساده با جاوا آموزش مباحث JavaFX آموزش ساخت ماشین حساب با JavaFX…»
سؤالات مصاحبه جاوا و پاسخ‌های یک‌خطی
اگر در حال آماده شدن برای مصاحبه برنامه‌نویسی جاوا هستید، موارد زیر می‌توانند در بخش کدنویسی بسیار کمک‌کننده باشند.


🟣 ۱. معکوس کردن یک رشته در یک خط

String reversed = new StringBuilder(str).reverse().toString();

نیازی به حلقه یا جابه‌جایی دستی نیست. کلاس StringBuilder یک متد داخلی به نام reverse() دارد که این کار را به‌صورت کارآمد و شیک انجام می‌دهد.

🟣 ۲. بررسی اینکه یک رشته پالیندروم است یا نه
boolean isPalindrome = str.equalsIgnoreCase(new StringBuilder(str).reverse().toString());

این یک‌خطی با استفاده از همان تکنیک معکوس‌سازی، رشته اصلی را با نسخه معکوس آن مقایسه می‌کند.


🟣 ۳. پیدا کردن بزرگ‌ترین عدد در یک لیست
int max = list.stream().max(Integer::compareTo).orElseThrow();

Stream API این کار را در یک خط تمیز انجام می‌دهد—بدون نیاز به حلقه یا مقایسه‌های دستی.

🟣 ۴. گرفتن اولین مقدار غیرخالی از چند Optional
String result = Stream.of(opt1, opt2, opt3)
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst()
.orElse("default");

این خط برای مصاحبه‌گرها بسیار تأثیرگذار است. نشان می‌دهد که Optional، Stream و زنجیره‌سازی تمیز را به خوبی می‌شناسید.

🟣 ۵. تبدیل یک لیست از رشته‌ها به حروف بزرگ
List<String> upper = list.stream()
.map(String::toUpperCase)
.toList();

کدی فانکشنال، تمیز و بسیار خوانا. متد toList() (در Java 16+) پایانی شیک برای این خط است.

🟣 ۶. شمارش تعداد تکرار یک کلمه در جمله

long count = Arrays.stream(sentence.split("\\s+"))
.filter(w -> w.equalsIgnoreCase("java"))
.count();

نمونه‌ای سریع از اینکه Stream حتی کارهای کوچک مثل شمارش کلمات را ساده می‌کند.

🟣 ۷. تولید یک رمز ۶ رقمی (OTP) تصادفی

int otp = 100000 + new Random().nextInt(900000);

ساده و مؤثر؛ همیشه یک OTP شش‌رقمی تولید می‌کند، بدون نیاز به قالب‌بندی اضافی.

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


🆔 @javapro_ir
🆔 @group_javapro
👍3
📣اطلاعیه
دانشجویان عزیز آکادمی جاواپرو، از امروز ۱۳ آذر ۱۴۰۴ می‌توانید از طریق رمز یکبار مصرف به پنل دوره‌های خود وارد شوید یا ثبت‌نام کنید.

اکانت افرادی که با شماره همراه یا ایمیل نامعتبر(فیک) ثبت‌نام کرده بودند، مسدود شده است. این دسته از افراد می‌توانند مجدداً با شماره همراه و ایمیل معتبر در آکادمی جاواپرو ثبت‌نام کنند.

در صورت نیاز به پشتیبانی برای ورود یا ثبت‌نام، لطفاً به آی‌دی زیر پیام دهید:
@rzutab


www.academyjavapro.com

🆔 @javapro_ir
🆔 @group_javapro
3
جاواپرو | برنامه نویسی جاوا | Java pinned «📣اطلاعیه دانشجویان عزیز آکادمی جاواپرو، از امروز ۱۳ آذر ۱۴۰۴ می‌توانید از طریق رمز یکبار مصرف به پنل دوره‌های خود وارد شوید یا ثبت‌نام کنید. اکانت افرادی که با شماره همراه یا ایمیل نامعتبر(فیک) ثبت‌نام کرده بودند، مسدود شده است. این دسته از افراد می‌توانند…»
بزودی آموزش رایگان درمورد ویژگی های جدید Spring Boot 4 در آكادمی جاواپرو منتشر می شود.....


🆔 @javapro_ir
🆔 @group_javapro
5👍1
راهنمای آمادگی مصاحبه برای جاوا، اسپرینگ بوت و میکروسرویس‌ها

در حال آماده شدن برای یک مصاحبه مهم هستید؟
چه برای نقش‌های مرتبط با Java، چه Spring Boot و چه Microservices هدف‌گذاری کرده باشید، داشتن یک مسیر مشخص و برنامه‌ریزی‌شده بسیار مهم است.
برای کمک به شما، یک راهنمای جامع به همراه یک فایل PDF کاربردی آماده شده که می‌توانید برای مطالعه کامل دانلود کنید.


موضوعاتی که در PDF پوشش داده شده‌اند:

🔹 مفاهیم اصلی جاوا

ویژگی‌های پیشرفته جاوا (نسخه ۸ به بعد)

اسپرینگ بوت: انوتیشن‌ها و طراحی REST API

اصول و ابزارهای میکروسرویس‌ها

یکپارچه‌سازی با دیتابیس، امنیت، و موارد بیشتر!


🔹 مباحث ضروری جاوا

تسلط بر جاوا پایهٔ موفقیت شماست. در مصاحبه‌ها آماده باشید برای:

مفاهیم اصلی: اصول شی‌گرایی مانند وراثت، چندریختی، کپسوله‌سازی
ویژگی‌های جاوا ۸: استریم‌ها، لامبداها، Optional و اینترفیس‌های تابعی
ساختمان داده و الگوریتم‌ها: کالکشن‌ها، Time Complexity و طراحی الگوریتم


🔹 مهارت‌های ضروری اسپرینگ بوت


اسپرینگ بوت هستهٔ اصلی ساخت REST API و معماری میکروسرویس است. تمرکز کنید روی:

انوتیشن‌های کلیدی:
@RestController، @Autowired و نحوه عملکرد داخلی آنها

طراحی API:
ساخت و تست REST API با هندلینگ مناسب خطا

کار با دیتابیس:
تسلط بر Spring Data JPA، روابط، Queryهای سفارشی

مبانی امنیت:
ر JWT، کنترل دسترسی مبتنی بر نقش، و اصول Spring Security


🔹مفاهیم ضروری معماری میکروسرویس‌ها

میکروسرویس‌ها ستون سیستم‌های مقیاس‌پذیر هستند. موارد کلیدی برای آمادگی مصاحبه:

اصول معماری:
Service Discovery، Load Balancing، API Gateway

ارتباط سرویس‌ها:
مقایسه REST با پیام‌رسان‌ها مثل Kafka و RabbitMQ

ر Spring Cloud:
ر Eureka، Gateway و الگوهای Resilience مانند Hystrix

پایش و مشاهده‌پذیری:
ابزارهایی مانند Prometheus و Zipkin برای Metrics و Tracing


وب‌سایت‌های مفید برای مطالعه بیشتر

W3Schools.com

TutorialsPoint.com

GeeksforGeeks.org

javapro.ir

academyjavapro.com



📚مشاهده_کتاب


🆔 @javapro_ir
🆔 @group_javapro
1
Java interview ready topic.pdf
1.2 MB
راهنمای آمادگی مصاحبه برای جاوا، اسپرینگ بوت و میکروسرویس‌ها

توضیحات


🆔 @javapro_ir
🆔 @group_javapro
در آینده نزدیک «دوره Spring Batch» که شرکت‌ها به آن نیاز دارند و می‌تواند نقش مهمی در ارتقای تخصص برنامه‌نویسان جاوا داشته باشد، در آکادمی جاواپرو تهیه و منتشر خواهد شد.

academyjavapro.com

🆔 @javapro_ir
🆔 @group_javapro
5😍1
تفاوت Static و Instance در جاوا

عبارت «Static در برابر Instance» یکی از مباحث کلیدی در طراحی کلاس‌ها و مدیریت حافظه در جاوا است.
این موضوع تعیین می‌کند که یک عضو کلاس متعلق به خود کلاس باشد یا تنها به شیءهایی که از آن کلاس ساخته می‌شوند ارتباط داشته باشد.
این تمایز نقش مهمی در درک رفتار برنامه‌ها، مدیریت حافظه و طراحی صحیح ساختارهای شی‌ءگرا ایفا می‌کند. ⚙️

Static چیست؟ 🔧

عبارت «static» به متدها و متغیرهایی اشاره دارد که متعلق به کل کلاس هستند نه به یک شیء خاص.
این اعضا تنها یک‌بار در حافظه بارگذاری می‌شوند و همهٔ نمونه‌های ساخته‌شده از کلاس به آن‌ها دسترسی مشترک دارند.
این ویژگی زمانی استفاده می‌شود که یک مقدار یا قابلیت باید میان همهٔ اشیا مشترک باشد، مانند شمارنده یا ابزار محاسباتی عمومی.

Instance چیست؟ 🧩

عبارت «instance» به متغیرها و متدهایی اشاره دارد که فقط پس از ساخته‌شدن یک شیء قابل استفاده هستند.
هر شیء مقادیر مستقل خود را برای این متغیرها نگه می‌دارد و تغییر آن‌ها بر شیءهای دیگر تأثیری ندارد.
این مفهوم پایهٔ شی‌ءگرایی است، زیرا هر نمونهٔ ساخته‌شده نمایانگر یک حالت مستقل از کلاس می‌باشد.

مثال ساده و روشن 🚗

عبارت «کلاس Car» را در نظر بگیرید که هم عضو static دارد و هم عضو instance:


public class Car {
public static int totalCars = 0; // Static
private String model; // Instance

public Car(String model) {
this.model = model;
totalCars++;
}

public String getModel() {
return model;
}
}


این مثال نشان می‌دهد که totalCars از نوع static است و تعداد تمام خودروهای ساخته‌شده را ذخیره می‌کند.
این مقدار توسط تمام نمونه‌ها به‌صورت مشترک استفاده می‌شود و تنها یک بار در حافظه وجود دارد.
در مقابل، هر شیء مقدار مستقل خود را برای model نگه می‌دارد.

نحوهٔ استفاده در عمل


Car c1 = new Car("BMW");
Car c2 = new Car("Audi");

System.out.println(Car.totalCars); // 2
System.out.println(c1.getModel()); // BMW
System.out.println(c2.getModel()); // Audi


این نمونه نشان می‌دهد که مقدار totalCars بدون ایجاد شیء جدید و از طریق نام کلاس قابل دسترسی است.
متغیرهای model اما فقط از طریق هر نمونه قابل مشاهده هستند زیرا از نوع instance می‌باشند.

متدهای Static و کاربرد آن‌ها 🧠

عبارت «متد static» زمانی مناسب است که رفتار آن متد وابسته به حالت داخلی شیء نباشد.
برای نمونه، متد Math.sqrt() نیازی به ساخت شیء ندارد و از طریق کلاس قابل اجرا است:


double result = Math.sqrt(25); // بدون ایجاد شیء


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

نتیجه‌گیری 🎯

عبارت «شناخت تفاوت Static و Instance» به برنامه‌نویسان کمک می‌کند تا طراحی درست‌تری برای متدها و متغیرها انتخاب کنند.
این شناخت موجب استفادهٔ بهینه از حافظه، خوانایی بیشتر کد و جلوگیری از وابستگی‌های نامناسب می‌شود.
این موضوع هم در پروژه‌های کوچک و هم در سیستم‌های بزرگ نقشی اساسی در کارایی و پایداری نرم‌افزار دارد.


#کاربر_مبتدی


🆔 @javapro_ir
🆔 @group_javapro
👍31
🔹 چرا معماری Microservices برای اپلیکیشن‌های جاوایی حیاتی است؟

در دنیای امروز که سرعت تحویل، مقیاس‌پذیری و تاب‌آوری سیستم‌ها تعیین‌کننده‌ی بقاست، معماری مایکروسرویس‌ها به یک استاندارد صنعتی تبدیل شده است. برخلاف معماری مونولیتیک، Microservices سیستم را به سرویس‌های مستقل، قابل استقرار جداگانه و مقیاس‌پذیر تبدیل می‌کند؛ دقیقا همان چیزی که تیم‌های بزرگ و پروژه‌های Enterprise نیاز دارند.

جاوا، با اکوسیستم بالغ و پشتیبانی گسترده‌اش، یکی از بهترین گزینه‌ها برای پیاده‌سازی این معماری است. وجود فریم‌ورک‌هایی مثل Spring Boot، Spring Cloud، Micronaut و Quarkus باعث می‌شود توسعه سرویس‌های سبک، سریع و cloud-native به‌سادگی انجام شود.

🔹مزایای کلیدی جاوا + Microservices:

ر Scalability واقعی: هر سرویس مستقل مقیاس می‌شود؛ جاوا در کنار Docker/Kubernetes این فرآیند را بهینه و کم‌هزینه می‌کند.

ر Resilience بالا: جداسازی سرویس‌ها + ابزارهایی مثل Circuit Breaker در Spring Cloud باعث تحمل خطا و استمرار سرویس‌دهی می‌شود.

ر Continuous Delivery سریع: جاوا به‌خوبی با CI/CD، Jenkins، GitLab و کانتینرسازی هماهنگ است.

ر Tech Diversity: برای هر سرویس می‌توان بهترین تکنولوژی را انتخاب کرد؛ از REST تا gRPC، از Kafka تا RabbitMQ.

توسعه سریع‌تر: سرویس‌های کوچک‌تر → تیم‌های مستقل‌تر → تحویل سریع‌تر.


ر Best Practices مهم:

طراحی بر پایه DDD و Context Boundaries

ارتباط بهینه (REST، gRPC، Messaging)

مدیریت داده به‌صورت Decentralized (با الگوهایی مثل Saga)

امنیت جدی: TLS، JWT، OAuth2

Observability با Prometheus، Grafana، Jaeger، Zipkin


در نهایت، ترکیب «Java + Microservices» معماری‌ای می‌سازد که هم Scalable است، هم Maintainable و هم برای آینده آماده. اگر در حال مهاجرت از مونولیت هستید یا قصد طراحی سیستم جدید دارید، این ترکیب یکی از منطقی‌ترین انتخاب‌های ۲۰۲۵ است.

دوره جامع نخبگان میکروسرویس با Java و Spring Boot


🆔 @javapro_ir
🆔 @group_javapro
2
هیچ‌وقت برای هزینه‌ای که صرف رشد و پیشرفت خودت می‌کنی تردید و دودوتاچهارتا نکن.



🆔 @javapro_ir
🆔 @group_javapro
6👍1🗿1
به آموزش های دواپس نظیر داکر، کوبرنتیز، کافکا، داکر در کنار جاوا و فریمورک های آن در آکادمی جاواپرو پرداخته شود؟
Anonymous Poll
94%
بله
6%
خیر
در کنار آموزش جاوا و فریمورک های آن، آیا به آموزش اوراکل هم پرداخته شود؟
Anonymous Poll
75%
بله
25%
خیر
ویژگی های جدید Spring Boot 4

امروز ۱۶ آذر ۱۴۰۴ و تنها چند ماه از انتشار رسمی Spring Boot 4 می‌گذرد.

در یک ویدئوی ۳۴ دقیقه‌ای به‌صورت کاملاً عملی به سراغ نسخه جدید می‌رویم

این ویدئو رایگان مناسب افرادی است که می‌خواهند خیلی سریع با Spring Boot 4 آشنا شوند و بدانند دقیقاً چه امکانات تازه‌ای در اختیارشان قرار گرفته است.

مشاهده


#جاوا #اسپرینگ #اسپرینگ_بوت #اسپرینگ_بوت_4 #spring #spring_boot
3
📌 آشنایی مقدماتی با Spring و Spring Boot

سلام دوستان عزیز
در این پیام قصد داریم به عنوان نخستین گام، با مفاهیم اولیه‌ی فریمورک Spring و دلیل استفاده از آن در پروژه‌های جاوا آشنا شویم. این بخش نقطه‌ی شروع ما برای یادگیری کامل Spring Boot خواهد بود.


۱) مقدمه‌ای بر Spring Framework

«اسپرینگ» یک فریمورک متن‌باز و بسیار قدرتمند برای ساخت سیستم‌های سازمانی در جاوا است. این فریمورک به دلیل انعطاف‌پذیری بالا، معماری ماژولار و پشتیبانی از توسعه‌ی تمیز و قابل تست، به یکی از استانداردهای اصلی برنامه‌نویسی بک‌اند تبدیل شده است.
پیش از اسپرینگ، توسعه‌ی نرم‌افزارهای سازمانی در جاوا بسیار پیچیده بود و فناوری‌هایی مانند EJB (Enterprise JavaBeans) کدنویسی را سنگین و زمان‌بر می‌کردند. اسپرینگ دقیقا برای حل این مشکلات و ساده‌سازی توسعه معرفی شد.


۲) مفهوم IoC و چرایی اهمیت آن

«وارونه‌سازی کنترل» یا IoC اساس کار اسپرینگ است. در برنامه‌نویسی سنتی، ما کنترل ساخت اشیا را بر عهده می‌گیریم؛ اما در اسپرینگ این مسئولیت به فریمورک سپرده می‌شود. این موضوع باعث می‌شود وابستگی‌ها مدیریت‌شده، تست‌پذیری بسیار بهتر و پیچیدگی کمتر شود.

برای نمونه، فرض کنید سرویسی داریم که برای ارسال پیام به یک پیام‌رسان نیازمند یک کلاس دیگر است. در روش سنتی شئ را خودمان می‌سازیم؛ اما در اسپرینگ فقط اعلام می‌کنیم که «این سرویس به آن پیام‌رسان نیاز دارد» و اسپرینگ خودش آن را می‌سازد و تزریق می‌کند:


@Service
public class MessageService {

private final Messenger messenger;

public MessageService(Messenger messenger) {
this.messenger = messenger;
}

public void send() {
messenger.sendMessage("Hello Spring");
}
}


این ساختار، پایه‌ی ایجاد سیستم‌های بزرگ و قابل نگهداری است.


۳) Spring Boot و نقش آن در ساده‌سازی توسعه

«اسپرینگ بوت» نسخه‌ای بالادستی از اسپرینگ است که با حذف تنظیمات پیچیده و ارائه‌ی کانفیگ‌های آماده، زمان توسعه را تا حد قابل‌توجهی کاهش می‌دهد. در گذشته برای راه‌اندازی یک پروژه اسپرینگ باید ده‌ها فایل XML و تنظیمات مختلف را آماده می‌کردیم؛ اما Spring Boot همه‌ی این موارد را خودکار انجام می‌دهد.

برای نمونه، با ساخت یک پروژه جدید در Spring Initializr می‌توانید تنها با چند کلیک یک برنامه اجراپذیر بسازید و آن را توسط دستور زیر اجرا کنید:


mvn spring-boot:run


همین قابلیت باعث شد Spring Boot به محبوب‌ترین گزینه برای توسعه‌ی API، میکروسرویس و سیستم‌های مدرن تبدیل شود.


۴) جمع‌بندی و مسیر ادامه

«نتیجه‌گیری» این است که اسپرینگ با معرفی IoC و Spring Boot، توسعه‌ی جاوا را سریع‌تر، ساده‌تر و حرفه‌ای‌تر کرده است. در پیام‌های بعدی محیط پروژه را بررسی کرده، ساختار پکیج‌بندی را توضیح می‌دهیم و سپس وارد کدنویسی عملی می‌شویم.


#Spring


🆔 @javapro_ir
🆔 @group_javapro
👍51
در صورتی در ورود یا ثبت نام در سایت آکادمی جاواپرو دچار مشکل شدید و نیاز به راهنمایی داشتید به پشتیبان جاواپرو به آی دی زیر پیام بدید:
@rzutab

academyjavapro.com
فریمورک Spring Batch چیست؟

ر Spring Batch یک فریم‌ورک متن‌باز برای پردازش دسته‌ای (Batch Processing) است. این فریم‌ورک یک راهکار سبک اما جامع به شمار می‌رود که با هدف توسعه برنامه‌های Batch پایدار و قابل‌اعتماد طراحی شده است؛ برنامه‌هایی که معمولاً در سامانه‌های سازمانی مدرن به‌وفور یافت می‌شوند. Spring Batch بر پایه رویکرد توسعه مبتنی بر POJO در Spring Framework بنا شده است.

فریمورک Spring Batch مجموعه‌ای از قابلیت‌های قابل‌استفاده‌مجدد ارائه می‌دهد که برای پردازش حجم بالای رکوردها حیاتی هستند؛ از جمله لاگ‌گیری و رهگیری، مدیریت تراکنش، آمار پردازش Job، قابلیت ادامه اجرای Job (Restart)، نادیده‌گیری خطاها (Skip) و مدیریت منابع.
این فریم‌ورک همچنین سرویس‌های فنی پیشرفته و قابلیت‌هایی ارائه می‌دهد که با استفاده از تکنیک‌های بهینه‌سازی و پارتیشن‌بندی (Partitioning)، امکان اجرای Jobهای بسیار حجیم و با کارایی بالا را فراهم می‌سازد.
چه Jobهای ساده و چه Jobهای پیچیده و حجیم، همگی می‌توانند با بهره‌گیری از Spring Batch به‌صورت بسیار مقیاس‌پذیر، حجم قابل‌توجهی از داده‌ها را پردازش کنند.

فریمورک Spring Batch بخشی از پورتفوی Spring به شمار می‌رود.

نسخه 1.0.0 این فریم‌ورک در مارس 2008 منتشر شد و نسخه 2.0.0 نیز در آوریل 2009 در دسترس عموم قرار گرفت.

منبع: ویکی پدیا


🆔 @javapro_ir
🆔 @group_javapro
... بزودی در آکادمی جاواپرو دوره فریمورک Spring Batch را برگزار خواهیم کرد.

تخصصی که بعد از یادگیری شما را از یک برنامه نویس معمولی Spring Boot به یک متخصص طراحی و پیاده سازی پردازش های دسته ای و Enterprise-Ready تبدیل می کند.

شما در این دوره مهارت هایی یاد خواهید گرفت که در پروژه های بزرگ بانکی، بیمه، تجارت الکترونیک کاملا ارزشمند است و اکثر شرکت ها دنبال چنین تجربه ای هستند.


🆔 @javapro_ir
🆔 @group_javapro
3
جاواپرو | برنامه نویسی جاوا | Java pinned «... بزودی در آکادمی جاواپرو دوره فریمورک Spring Batch را برگزار خواهیم کرد. تخصصی که بعد از یادگیری شما را از یک برنامه نویس معمولی Spring Boot به یک متخصص طراحی و پیاده سازی پردازش های دسته ای و Enterprise-Ready تبدیل می کند. شما در این دوره مهارت هایی…»
جاواپرو | برنامه نویسی جاوا | Java
📌 آشنایی مقدماتی با Spring و Spring Boot سلام دوستان عزیز در این پیام قصد داریم به عنوان نخستین گام، با مفاهیم اولیه‌ی فریمورک Spring و دلیل استفاده از آن در پروژه‌های جاوا آشنا شویم. این بخش نقطه‌ی شروع ما برای یادگیری کامل Spring Boot خواهد بود. ۱) مقدمه‌ای…
ساختار پروژه در Spring Boot و اجرای اولین برنامه

سلام دوستان عزیز
در ادامه‌ی مسیر آموزشی Spring Boot، در این پیام با ساختار استاندارد پروژه آشنا می‌شویم و اولین برنامه‌ی قابل اجرا را ایجاد می‌کنیم. درک ساختار پروژه از مهم‌ترین قدم‌ها برای نوشتن یک سیستم تمیز و حرفه‌ای است.


۱) ساخت یک پروژه جدید با Spring Initializr

«آغاز» کار با Spring Boot معمولاً از سرویس Spring Initializr شروع می‌شود. این سرویس به شما امکان می‌دهد با چند انتخاب ساده، یک پروژه‌ی آماده برای اجرا بسازید.
برای این کار کافی است وارد سایت Initializr شوید و موارد زیر را انتخاب کنید:

* زبان: Java
* نوع پروژه: Maven
* نسخه‌ی Spring Boot
* وابستگی‌ها: Web (برای ساخت API)

پس از ایجاد پروژه، آن را در IntelliJ یا Eclipse باز کنید.


۲) ساختار پوشه‌ها در Spring Boot

«ساختار» پروژه‌های Spring Boot به صورت پیش‌فرض معنی‌دار است و هر بخش هدف مشخصی دارد. یک پروژه‌ی ساده معمولاً شامل این بخش‌هاست:


src
└── main
├── java
│ └── com.example.demo
│ ├── DemoApplication.java
│ ├── controller
│ ├── service
│ └── repository
└── resources
├── application.properties
└── static / templates


«پوشه‌ی java» شامل کدهای برنامه است. فایل اصلی پروژه (مثلاً DemoApplication) در همین بخش قرار دارد.
«پوشه‌ی controller» مسئول مدیریت درخواست‌های کاربر است.
«پوشه‌ی service» محل نوشتن منطق اصلی برنامه است.
«پوشه‌ی repository» برای تعامل با دیتابیس استفاده می‌شود.
«پوشه‌ی resources» شامل تنظیمات و فایل‌های استاتیک است.


۳) اجرای اولین برنامه Spring Boot

«اجرای» برنامه در اسپرینگ بسیار ساده است. فایل اصلی پروژه معمولاً مانند مثال زیر است:


@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}


این فایل نقطه‌ی شروع برنامه است. با اجرای آن، یک سرور داخلی (Tomcat) به طور خودکار بالا می‌آید.

برای اجرای پروژه می‌توانید از یکی از روش‌های زیر استفاده کنید:

* اجرای مستقیم کلاس DemoApplication در محیط IntelliJ
* یا اجرای دستور زیر در ترمینال:


mvn spring-boot:run


پس از اجرا، مرورگر را باز کرده و آدرس زیر را وارد کنید:


https://localhost:8080


اگر برنامه بدون خطا اجرا شود، یعنی Spring Boot آماده‌ی سرویس‌دهی است.


۴) اضافه کردن اولین کنترلر

«ایجاد» یک کنترلر نخستین قدم برای ساخت یک API است. مثال زیر یک کنترلر ساده را نشان می‌دهد:


@RestController
public class HelloController {

@GetMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
}


اکنون با ورود به https://localhost:8080/hello خروجی ظاهر می‌شود.


۵) جمع‌بندی پیام

«نتیجه» این است که با ساختار پروژه و نحوه‌ی اجرای اولین برنامه‌ی Spring Boot آشنا شدیم. در پیام بعدی وارد توضیح کامل‌تر لایه‌ها (Controller, Service, Repository) می‌شویم و معماری تمیز پروژه را بررسی خواهیم کرد.

#Spring


🆔 @javapro_ir
🆔 @group_javapro
👍42