لتحديد مسح جميع الفئات في com.org.x
وفقط فئة واحدة في com.org.y
، يمكنك تحديد الفئات التي تريد مسحها بدقة باستخدام @ComponentScan
مع الإعدادات المناسبة. يمكنك استخدام basePackages
لتحديد الفئات التي تريد مسحها بالتحديد. على سبيل المثال:
java@ComponentScan(basePackages = {"com.org.x", "com.org.y"})
public class AppConfig {
// configuration
}
لكي يتم مسح جميع الفئات في com.org.x
وفقط com.org.y.SomeService.class
من com.org.y
.
بالنسبة لإنشاء هذا الفصل كفصل واحد وتضمينه في سياق التطبيق، يمكنك استخدام التكوين الموسع @Configuration
مع @Bean
:
java@Configuration
public class MyConfiguration {
@Bean
public SomeService someService() {
return new SomeService();
}
}
بهذه الطريقة، ستتمكن من تضمين SomeService
كفئة مسحنة بشكل يدوي واستخدامها في سياق تطبيقك.
المزيد من المعلومات
بالتأكيد! في Spring Boot، عند استخدام @ComponentScan
، يتم فحص الحزم المحددة للعثور على الفئات التي تحتوي على تعليمات @Component
أو @Service
أو @Repository
أو @Controller
لتسجيلها كـ beans في سياق التطبيق. إذا كنت ترغب في تحديد فئات محددة ليتم فحصها، يمكنك استخدام الإعدادات المناسبة لـ @ComponentScan
.
لإنشاء bean يدويًا وتضمينه في سياق التطبيق، يمكنك استخدام @Bean
داخل فئة تحمل تعليمات @Configuration
. هذا يسمح لك بتكوين الـ beans يدويًا بدلاً من الاعتماد على فحص المكونات تلقائيًا.
على سبيل المثال، إذا كان لديك فئة تسمى SomeService
تحمل تعليمات @Service
وتحتاج إلى إنشاء bean منها يدويًا، يمكنك فعل ذلك كما يلي:
java@Configuration
public class MyConfiguration {
@Bean
public SomeService someService() {
return new SomeService();
}
}
هذا يعني أنه عندما يتم تحميل تطبيقك، سيتم إنشاء bean من فئة SomeService
وتسجيلها في سياق التطبيق الخاص بك.