سوالات مصاحبه Springboot – انجمن DEV

Summarize this content to 400 words in Persian Lang
اینجا هستند 20 سوال مهم مصاحبه بهار بوت هر توسعه دهنده باید برای موارد زیر آماده شود:
1. بوت بهار چیست؟ چرا استفاده می شود؟
پاسخ:
Spring Boot چارچوبی است که برای ساده سازی توسعه برنامه های کاربردی جاوا با حذف تنظیمات boilerplate طراحی شده است. این ویژگی هایی مانند پیکربندی خودکار، سرورهای تعبیه شده و وابستگی های شروع کننده را برای توسعه سریع تر و آسان تر برنامه ارائه می دهد.
2. ویژگی های کلیدی چکمه بهار چیست؟
پیکربندی خودکار اجزای Spring.
سرورهای جاسازی شده مانند Tomcat، Jetty و Undertow.
وابستگی های شروع کننده برای تنظیمات از پیش پیکربندی شده.
محرک بوت فنری برای نظارت و مدیریت.
پیکربندی خارجی با استفاده از application.properties یا application.yml.
3. هدف از چیست @SpringBootApplication حاشیه نویسی؟
پاسخ:
ترکیب می کند:
@Configuration: کلاس را به عنوان یک کلاس پیکربندی علامت گذاری می کند.
@EnableAutoConfiguration: پیکربندی خودکار Spring Boot را فعال می کند.
@ComponentScan: بسته را برای اجزاء اسکن می کند.
4. فرق اسپرینگ و بوت بهار چیست؟
پاسخ:
چارچوب بهار: به پیکربندی دستی bean ها، XML ها و وابستگی ها نیاز دارد.
چکمه بهاره: پیکربندی خودکار، سرورهای جاسازی شده و پیشفرضهای پیشفرض را برای سادهسازی راهاندازی فراهم میکند.
5. چگونه اتصال پایگاه داده را در Spring Boot پیکربندی می کنید؟
پاسخ:
موارد زیر را اضافه کنید application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
وابستگی درایور پایگاه داده را در خود بگنجانید pom.xml.
6. چگونه می توان یک وب سرویس RESTful را در Spring Boot ایجاد کرد؟
پاسخ:
استفاده کنید @RestController برای ایجاد نقاط پایانی مثال:
@RestController
@RequestMapping(“/api”)
public class UserController {
@GetMapping(“/users”)
public List<String> getUsers() {
return List.of(“Alice”, “Bob”, “Charlie”);
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
7. استارتر Spring Boot چیست؟
پاسخ:
استارترها وابستگی های از پیش پیکربندی شده ای برای عملکردهای خاص هستند. مثال ها:
spring-boot-starter-web: برای برنامه های تحت وب.
spring-boot-starter-data-jpa: برای JPA و Hibernate.
spring-boot-starter-security: برای امنیت بهار.
8. محرک بوت فنری چیست؟
پاسخ:
ماژولی برای نظارت و مدیریت برنامه های کاربردی در تولید. این نقاط پایانی مانند /actuator/health و /actuator/metrics.
9. چگونه استثناها را در Spring Boot مدیریت می کنید؟
پاسخ:
استفاده کنید @ControllerAdvice و @ExceptionHandler برای رسیدگی به استثنای جهانی:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<String> handleException(RuntimeException ex) {
return new ResponseEntity<>(“Error: ” + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
10. چه فرقی با هم دارند @RestController و @Controller?
پاسخ:
@RestController: ترکیب می کند @Controller و @ResponseBody. داده ها (JSON/XML) را برمی گرداند.
@Controller: برای ساخت صفحات وب (نما) استفاده می شود.
11. Spring Data JPA چیست؟
پاسخ:
یک ماژول Spring برای ساده کردن دسترسی به داده ها با استفاده از JPA. این رابط های مخزن مانند JpaRepository برای عملیات مشترک پایگاه داده
12. چه فرقی با هم دارند CrudRepository و JpaRepository?
پاسخ:
CrudRepository: عملیات اصلی CRUD.
JpaRepository: گسترش می یابد CrudRepository و پشتیبانی از ویژگی های خاص JPA مانند صفحه بندی و پردازش دسته ای را اضافه می کند.
13. تزریق وابستگی چیست و Spring Boot چگونه آن را پیاده سازی می کند؟
پاسخ:
تزریق وابستگی (DI) یک الگوی طراحی است که در آن اشیاء به جای ایجاد شدن در کلاس به یک کلاس تزریق می شوند. Spring Boot از حاشیه نویسی هایی مانند @Autowired برای پیاده سازی DI.
14. پروفیل های بهار چیست؟
پاسخ:
نمایه ها به شما امکان می دهند پیکربندی های خاص محیط را تعریف کنید (به عنوان مثال، dev، prod). یک نمایه را با استفاده از:
spring.profiles.active=dev
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
15. Spring Boot چگونه امنیت را پیاده سازی می کند؟
پاسخ:
با اضافه کردن spring-boot-starter-security وابستگی، احراز هویت اولیه به طور پیش فرض فعال است. برای پیکربندی های امنیتی سفارشی، می توانید گسترش دهید SecurityFilterChain یا استفاده کنید WebSecurityConfigurerAdapter.
16. هدف از چیست @Qualifier حاشیه نویسی؟
پاسخ:
هنگامی که چندین دانه از یک نوع وجود دارد برای رفع ابهام استفاده می شود. مثال:
@Service
public class MyService {
@Autowired
@Qualifier(“beanName”)
private MyBean myBean;
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
17. چه فایده ای دارد @EnableAutoConfiguration?
پاسخ:
مکانیزم پیکربندی خودکار Spring Boot را فعال می کند، مسیر کلاس را اسکن می کند و دانه ها را به طور خودکار بر اساس وابستگی ها پیکربندی می کند.
18. Spring Boot چگونه از میکروسرویس ها پشتیبانی می کند؟
پاسخ:
سرورهای تعبیه شده برای استقرار مستقل.
API های RESTful برای ارتباط.
ادغام با Spring Cloud برای کشف سرویس، مدیریت پیکربندی و قطع مدار.
19. چگونه یک برنامه Spring Boot را تست می کنید؟
پاسخ:
از ویژگی های Spring Boot Test استفاده کنید:
@SpringBootTest: کل زمینه برنامه را بارگیری می کند.
@WebMvcTest: فقط لایه وب را تست می کند.
MockMvc: درخواست های HTTP را برای آزمایش کنترلرها شبیه سازی می کند.
20. چگونه پیکربندی را در Spring Boot خارجی می کنید؟
پاسخ:
ذخیره تنظیمات در application.properties، application.yml، یا فایل های خارجی می توانید آنها را با متغیرهای محیطی یا آرگومان های خط فرمان لغو کنید.
اینجا هستند 20 سوال مهم مصاحبه بهار بوت هر توسعه دهنده باید برای موارد زیر آماده شود:
1. بوت بهار چیست؟ چرا استفاده می شود؟
-
پاسخ:
Spring Boot چارچوبی است که برای ساده سازی توسعه برنامه های کاربردی جاوا با حذف تنظیمات boilerplate طراحی شده است. این ویژگی هایی مانند پیکربندی خودکار، سرورهای تعبیه شده و وابستگی های شروع کننده را برای توسعه سریع تر و آسان تر برنامه ارائه می دهد.
2. ویژگی های کلیدی چکمه بهار چیست؟
- پیکربندی خودکار اجزای Spring.
- سرورهای جاسازی شده مانند Tomcat، Jetty و Undertow.
- وابستگی های شروع کننده برای تنظیمات از پیش پیکربندی شده.
- محرک بوت فنری برای نظارت و مدیریت.
- پیکربندی خارجی با استفاده از
application.properties
یاapplication.yml
.
3. هدف از چیست @SpringBootApplication
حاشیه نویسی؟
-
پاسخ:
ترکیب می کند:-
@Configuration
: کلاس را به عنوان یک کلاس پیکربندی علامت گذاری می کند. -
@EnableAutoConfiguration
: پیکربندی خودکار Spring Boot را فعال می کند. -
@ComponentScan
: بسته را برای اجزاء اسکن می کند.
-
4. فرق اسپرینگ و بوت بهار چیست؟
-
پاسخ:
- چارچوب بهار: به پیکربندی دستی bean ها، XML ها و وابستگی ها نیاز دارد.
- چکمه بهاره: پیکربندی خودکار، سرورهای جاسازی شده و پیشفرضهای پیشفرض را برای سادهسازی راهاندازی فراهم میکند.
5. چگونه اتصال پایگاه داده را در Spring Boot پیکربندی می کنید؟
-
پاسخ:
موارد زیر را اضافه کنیدapplication.properties
:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
وابستگی درایور پایگاه داده را در خود بگنجانید pom.xml
.
6. چگونه می توان یک وب سرویس RESTful را در Spring Boot ایجاد کرد؟
-
پاسخ:
استفاده کنید@RestController
برای ایجاد نقاط پایانی مثال:
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users")
public List<String> getUsers() {
return List.of("Alice", "Bob", "Charlie");
}
}
7. استارتر Spring Boot چیست؟
-
پاسخ:
استارترها وابستگی های از پیش پیکربندی شده ای برای عملکردهای خاص هستند. مثال ها:-
spring-boot-starter-web
: برای برنامه های تحت وب. -
spring-boot-starter-data-jpa
: برای JPA و Hibernate. -
spring-boot-starter-security
: برای امنیت بهار.
-
8. محرک بوت فنری چیست؟
-
پاسخ:
ماژولی برای نظارت و مدیریت برنامه های کاربردی در تولید. این نقاط پایانی مانند/actuator/health
و/actuator/metrics
.
9. چگونه استثناها را در Spring Boot مدیریت می کنید؟
-
پاسخ:
استفاده کنید@ControllerAdvice
و@ExceptionHandler
برای رسیدگی به استثنای جهانی:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<String> handleException(RuntimeException ex) {
return new ResponseEntity<>("Error: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
10. چه فرقی با هم دارند @RestController
و @Controller
?
-
پاسخ:
-
@RestController
: ترکیب می کند@Controller
و@ResponseBody
. داده ها (JSON/XML) را برمی گرداند. -
@Controller
: برای ساخت صفحات وب (نما) استفاده می شود.
-
11. Spring Data JPA چیست؟
-
پاسخ:
یک ماژول Spring برای ساده کردن دسترسی به داده ها با استفاده از JPA. این رابط های مخزن مانندJpaRepository
برای عملیات مشترک پایگاه داده
12. چه فرقی با هم دارند CrudRepository
و JpaRepository
?
-
پاسخ:
-
CrudRepository
: عملیات اصلی CRUD. -
JpaRepository
: گسترش می یابدCrudRepository
و پشتیبانی از ویژگی های خاص JPA مانند صفحه بندی و پردازش دسته ای را اضافه می کند.
-
13. تزریق وابستگی چیست و Spring Boot چگونه آن را پیاده سازی می کند؟
-
پاسخ:
تزریق وابستگی (DI) یک الگوی طراحی است که در آن اشیاء به جای ایجاد شدن در کلاس به یک کلاس تزریق می شوند. Spring Boot از حاشیه نویسی هایی مانند@Autowired
برای پیاده سازی DI.
14. پروفیل های بهار چیست؟
-
پاسخ:
نمایه ها به شما امکان می دهند پیکربندی های خاص محیط را تعریف کنید (به عنوان مثال، dev، prod). یک نمایه را با استفاده از:
spring.profiles.active=dev
15. Spring Boot چگونه امنیت را پیاده سازی می کند؟
-
پاسخ:
با اضافه کردنspring-boot-starter-security
وابستگی، احراز هویت اولیه به طور پیش فرض فعال است. برای پیکربندی های امنیتی سفارشی، می توانید گسترش دهیدSecurityFilterChain
یا استفاده کنیدWebSecurityConfigurerAdapter
.
16. هدف از چیست @Qualifier
حاشیه نویسی؟
-
پاسخ:
هنگامی که چندین دانه از یک نوع وجود دارد برای رفع ابهام استفاده می شود. مثال:
@Service
public class MyService {
@Autowired
@Qualifier("beanName")
private MyBean myBean;
}
17. چه فایده ای دارد @EnableAutoConfiguration
?
-
پاسخ:
مکانیزم پیکربندی خودکار Spring Boot را فعال می کند، مسیر کلاس را اسکن می کند و دانه ها را به طور خودکار بر اساس وابستگی ها پیکربندی می کند.
18. Spring Boot چگونه از میکروسرویس ها پشتیبانی می کند؟
-
پاسخ:
- سرورهای تعبیه شده برای استقرار مستقل.
- API های RESTful برای ارتباط.
- ادغام با Spring Cloud برای کشف سرویس، مدیریت پیکربندی و قطع مدار.
19. چگونه یک برنامه Spring Boot را تست می کنید؟
-
پاسخ:
از ویژگی های Spring Boot Test استفاده کنید:-
@SpringBootTest
: کل زمینه برنامه را بارگیری می کند. -
@WebMvcTest
: فقط لایه وب را تست می کند. -
MockMvc
: درخواست های HTTP را برای آزمایش کنترلرها شبیه سازی می کند.
-
20. چگونه پیکربندی را در Spring Boot خارجی می کنید؟
-
پاسخ:
ذخیره تنظیمات درapplication.properties
،application.yml
، یا فایل های خارجی می توانید آنها را با متغیرهای محیطی یا آرگومان های خط فرمان لغو کنید.