একটি @Configuration
এনোটোটেড শ্রেণি তৈরি করুন :
@Configuration
public class MyApplicationContext {
}
প্রতিটির জন্য <bean>
ট্যাগের জন্য এ্যানোটেটেড একটি পদ্ধতি তৈরি করুন @Bean
:
@Configuration
public class MyApplicationContext {
@Bean(name = "someBean")
public SomeClass getSomeClass() {
return new SomeClassImpl(someInterestingProperty); // We still need to inject someInterestingProperty
}
@Bean(name = "anotherBean")
public AnotherClass getAnotherClass() {
return new AnotherClassImpl(getSomeClass(), beanFromSomewhereElse); // We still need to inject beanFromSomewhereElse
}
}
আমদানি করার জন্য beanFromSomewhereElse
আমাদের এর সংজ্ঞাটি আমদানি করতে হবে। এটি একটি এক্সএমএলে সংজ্ঞায়িত করা যেতে পারে এবং আমরা ব্যবহার করব @ImportResource
:
@ImportResource("another-application-context.xml")
@Configuration
public class MyApplicationContext {
...
}
শিম যদি অন্য একটিতে সংজ্ঞায়িত করা হয় @Configuration
শ্রেণিতে আমরা @Import
টীকাটি ব্যবহার করতে পারি :
@Import(OtherConfiguration.class)
@Configuration
public class MyApplicationContext {
...
}
আমরা অন্যান্য এক্সএমএল আমদানি করার পরে বা @Configuration
ক্লাস , @Configuration
ক্লাসে কোনও প্রাইভেট সদস্য ঘোষণা করে তারা আমাদের প্রসঙ্গে ঘোষণা করা মটরশুটি ব্যবহার করতে পারি :
@Autowired
@Qualifier(value = "beanFromSomewhereElse")
private final StrangeBean beanFromSomewhereElse;
অথবা এটিকে নির্ভর করে যে পদ্ধতিটি মটরশুটিটিকে সংজ্ঞায়িত করে সেই পদ্ধতিতে এটি সরাসরি প্যারামিটার হিসাবে ব্যবহার করুন beanFromSomewhereElse
ব্যবহার করে@Qualifier
:
@Bean(name = "anotherBean")
public AnotherClass getAnotherClass(@Qualifier (value = "beanFromSomewhereElse") final StrangeBean beanFromSomewhereElse) {
return new AnotherClassImpl(getSomeClass(), beanFromSomewhereElse);
}
বৈশিষ্ট্যগুলি আমদানি করা অন্য একটি এক্সএমএল বা শিম থেকে আমদানি করার মতো similar @Configuration
শ্রেণি । ব্যবহারের পরিবর্তে @Qualifier
আমরা নীচে @Value
হিসাবে বৈশিষ্ট্যগুলি ব্যবহার করব :
@Autowired
@Value("${some.interesting.property}")
private final String someInterestingProperty;
এটি দিয়ে ব্যবহার করা যেতে পারে স্পেল এক্সপ্রেশনগুলির পাশাপাশি ।
বসন্তকে যেমন ব্রেস কনটেইনার হিসাবে এই শ্রেণীর আচরণ করার অনুমতি দেওয়ার জন্য আমাদের এই প্রসঙ্গে এই ট্যাগটি রেখে আমাদের মূল এক্সএমএলতে চিহ্নিত করতে হবে:
<context:annotation-config/>
আপনি এখন আমদানি করতে পারেন @Configuration
সাধারণ সিম তৈরি করার মতোই ক্লাস :
<bean class="some.package.MyApplicationContext"/>
সম্পূর্ণরূপে বসন্তের এক্সএমএল এড়ানোর উপায় রয়েছে তবে তারা এই উত্তরের সুযোগে নেই। আপনি আমার ব্লগ পোস্টে এই বিকল্পগুলির একটি আবিষ্কার করতে পারেন যার উপরে আমি আমার উত্তরটি ভিত্তি করছি।
মূলত আমি কয়েকটি সুবিধার কারণে দেখতে পেয়েছি এক্সএমএল ব্যবহারের চেয়ে মটরশুটি ঘোষণার এই পদ্ধতিটি অনেক বেশি স্বাচ্ছন্দ্যবোধ করি: