التهيئة التلقائية وSpring Boot Starters
افهم كيف تهيّئ Spring Boot الـ beans تلقائيًا استنادًا إلى تبعيات classpath وتعليقات الشرط
التهيئة التلقائية وSpring Boot Starters درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.
ما هي التهيئة التلقائية في Spring Boot؟
تُهيّئ التهيئة التلقائية كائنات Bean في Spring تلقائيًا استنادًا إلى ما هو موجود في مسار الأصناف والبيئة. وتلغي الحاجة إلى إعداد @Bean يدويًا في عمليات التكامل الشائعة.
التعليمة التوضيحية @SpringBootApplication
إن @SpringBootApplication عبارة عن تركيب من @Configuration و@EnableAutoConfiguration و@ComponentScan. وهي تفعّل التهيئة التلقائية وفحص المكونات.
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}كيفية عمل التهيئة التلقائية
يفحص Spring Boot الملف META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (في Spring Boot 3) للحصول على قائمة بفئات التهيئة التلقائية. ويُطبَّق كل فئة وفقًا لشروط معينة.
// Spring Boot 3 imports file:
// org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
// org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration@ConditionalOnClass و@ConditionalOnMissingBean
تستخدم فئات التهيئة التلقائية تعليمات @Conditional التوضيحية لتطبيقها فقط عند تحقق شروط محددة — مثل وجود فئة في مسار الأصناف أو عدم تعريف كائن Bean مسبقًا.
@AutoConfiguration
@ConditionalOnClass(DataSource.class)
@ConditionalOnMissingBean(DataSource.class)
public class DataSourceAutoConfiguration {
@Bean
public DataSource dataSource(DataSourceProperties props) {
return DataSourceBuilder.create().build();
}
}حزم Starter في Spring Boot
حزمة starter هي مجموعة منتقاة من واصفات الاعتماديات. تؤدي إضافة spring-boot-starter-web إلى مشروعكم إلى جلب Spring MVC وTomcat وJackson وتهيئاتها التلقائية، من دون البحث اليدوي عن الاعتماديات.
// build.gradle:
dependencies {
implementation "org.springframework.boot:spring-boot-starter-web"
implementation "org.springframework.boot:spring-boot-starter-data-jpa"
implementation "org.springframework.boot:spring-boot-starter-validation"
}حزم Starter الشائعة
تشمل حزم starter الأساسية: starter-web (REST + Tomcat)، وstarter-data-jpa (JPA + Hibernate)، وstarter-security، وstarter-test (JUnit + Mockito)، وstarter-actuator (الصحة والمقاييس).
تجاوز التهيئة التلقائية
عرّفوا كائن @Bean من النوع نفسه ليحظى بالأولوية على كائنات Bean المهيّأة تلقائيًا. ويضمن @ConditionalOnMissingBean إنشاء كائن Bean المهيّأ تلقائيًا فقط عند غياب كائنكم.
// Override auto-configured ObjectMapper:
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper()
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.registerModule(new JavaTimeModule());
}
}استبعاد التهيئة التلقائية
استبعدوا فئات التهيئة التلقائية المحددة التي لا تريدونها — ويكون ذلك مفيدًا عندما تجلب حزمة starter شيئًا تريدون تهيئته يدويًا.
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
SecurityAutoConfiguration.class
})
public class MyApp { ... }إنشاء حزمة Starter خاصة بكم
أنشئوا وحدة starter تتضمن فئة تهيئة تلقائية، وسجّلوها في META-INF/spring/....AutoConfiguration.imports. وستحصل المشاريع الأخرى التي تضم starter الخاص بكم على كائنات Bean الخاصة بكم تلقائيًا.
// my-starter/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
// com.example.MyLibraryAutoConfigurationتصحيح أخطاء التهيئة التلقائية
شغّلوا التطبيق باستخدام الخيار --debug، أو اضبطوا logging.level.org.springframework.boot.autoconfigure=DEBUG لعرض "تقرير تقييم الشروط" الذي يوضح أي تهيئات تلقائية طُبّقت أو استُبعدت والسبب.
java -jar myapp.jar --debug
# Or in application.properties:
# logging.level.org.springframework.boot.autoconfigure=DEBUGنقطة النهاية /conditions في Actuator
فعّلوا spring-boot-starter-actuator وأتيحوا نقطة النهاية /actuator/conditions لعرض تقرير تقييم التهيئة التلقائية أثناء التشغيل من دون إعادة التشغيل.
# application.properties:
management.endpoints.web.exposure.include=conditions
# Then:
curl http://localhost:8080/actuator/conditionsتحقق سريع
ما التعليمة التوضيحية التي تؤدي إلى إنشاء كائن Bean فقط إذا لم يكن هناك كائن Bean من النوع نفسه معرّفًا مسبقًا؟
مراجعة
تستخدم التهيئة التلقائية التعليمات التوضيحية الشرطية لتوصيل كائنات Bean استنادًا إلى مسار الأصناف وكائنات Bean الموجودة. تجمع حزم starter الاعتماديات والتهيئة التلقائية. تجاوزوا التهيئة باستخدام كائنات Bean الخاصة بكم، واستبعدوا التهيئات غير المرغوبة، وصححوا الأخطاء باستخدام --debug.
الأسئلة الشائعة
هل درس «التهيئة التلقائية وSpring Boot Starters» مجاني؟
نعم — نص درس «التهيئة التلقائية وSpring Boot Starters» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.
ماذا ستتعلم في «التهيئة التلقائية وSpring Boot Starters»؟
افهم كيف تهيّئ Spring Boot الـ beans تلقائيًا استنادًا إلى تبعيات classpath وتعليقات الشرط تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «التهيئة التلقائية وSpring Boot Starters»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التهيئة التلقائية وSpring Boot Starters
- خصائص التطبيق وملفات التعريف
- توصيل الـ beans: @Component و@Service و@Repository
- الحقن عبر المُنشئ والتبعيات الدائرية