XML-ga muqobil konfiguratsiya, komponentlarni bog'lash uchun burchak qavslarida e'lonlar o'rniga bytecode metadatalariga asoslangan anotatsiyalar asosidagi konfiguratsiyadir. Binlarni bog'lash vositasini tasvirlash uchun XML o'rniga, ishlab chiquvchi konfiguratsiyani komponent sinfiga, sinf, metod yoki maydon uchun tegishli e'lonlar bilan anotatsiyalar orqali o'tkazadi. AutowiredAnnotationBeanPostProcessor misol bo'limida aytib o'tilganidek, anotatsiyalar bilan birgalikda BeanPostProcessor dan foydalanish, IoC-konteynerni Spring bilan kengaytirish uchun keng tarqalgan vositadir. Masalan, Spring 2.0da @Required anotatsiyasi yordamida kerakli xususiyatlardan majburiy foydalangan holda imkoniyat qo'shildi. Spring 2.5, umumiy yondashuvdan foydalanish Spring bilan bog'lanish kiritishni boshqarishga imkon berdi. Asosan, @Autowired anotatsiyasi "Avtomatik aniqlash va bog'lanayotgan obyektlarni bog'lash" bo'limida tasvirlangan imkoniyatlarni taqdim etadi, ammo yanada nozik nazorat va kengroq qo'llash imkoniyati bilan. Spring 2.5da, JSR-250 anotatsiyalari, masalan, @PostConstruct va @PreDestroy qo'llab-quvvatlandi. Spring 3.0da esa javax.inject paketida joylashgan JSR-330 anotatsiyalarini qo'llab-quvvatlash qo'shildi, masalan, @Inject va @Named.
Anotatsiyalar bilan bog'lanish XML orqali bog'lanishdan oldin amalga oshiriladi. Shunday qilib, XML konfiguratsiyasi ikkala yondashuv orqali xususiyatlar uchun anotatsiyalarni almashtiradi.
Odatdagidek, siz postprotsessorlarni alohida bean ta'riflari sifatida ro'yxatdan o'tkazishingiz mumkin, ammo ularni XML-konfiguratsiyasida quyidagi tegi qo'shilishi bilan aniq bo'lmagan tarzda ro'yxatdan o'tkazish mumkin (e'tibor bering, context namespacesining kiritilishiga):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
</beans>
<context:annotation-config/> quyidagi postprotsessorlarni aniq bo'lmagan holda ro'yxatdan o'tkazadi:
<context:annotation-config/> faqat o'sha ilova kontekstida aniqlangan beanlar uchun anotatsiyalarni qidiradi. Bu degani, agar siz <context:annotation-config/>ni DispatcherServlet uchun WebApplicationContextga joylashtirsangiz, u faqat controllerlaringizdagi @Autowired beanlarni tekshiradi, ammo xizmatlarda emas.
GO TO FULL VERSION