Wiosna - definicja fasoli
Obiekty, które tworzą szkielet aplikacji i które są zarządzane przez kontener Spring IoC, są nazywane beans. Fasola to obiekt, który jest tworzony, składany i zarządzany w inny sposób przez kontener Spring IoC. Te komponenty bean są tworzone przy użyciu metadanych konfiguracji dostarczonych do kontenera. Na przykład w postaci definicji XML <bean />, które widzieliście już w poprzednich rozdziałach.
Definicja fasoli zawiera informacje o nazwie configuration metadata, który jest potrzebny, aby kontener wiedział:
- Jak stworzyć fasolę
- Szczegóły cyklu życia Bean
- Zależności Beana
Wszystkie powyższe metadane konfiguracji przekładają się na zestaw następujących właściwości, które składają się na definicję każdej fasoli.
Sr.No. | Właściwości i opis |
---|---|
1 | class Ten atrybut jest obowiązkowy i określa klasę fasoli, która ma zostać użyta do jej utworzenia. |
2 | name Ten atrybut jednoznacznie określa identyfikator ziarna. W metadanych konfiguracyjnych opartych na języku XML do określenia identyfikatorów komponentów bean używa się atrybutów id i / lub name. |
3 | scope Ten atrybut określa zakres obiektów utworzonych na podstawie określonej definicji fasoli i zostanie omówiony w rozdziale zakresy fasoli. |
4 | constructor-arg Służy do wstrzykiwania zależności i zostanie omówione w kolejnych rozdziałach. |
5 | properties Służy do wstrzykiwania zależności i zostanie omówione w kolejnych rozdziałach. |
6 | autowiring mode Służy do wstrzykiwania zależności i zostanie omówione w kolejnych rozdziałach. |
7 | lazy-initialization mode Fasola inicjowana z opóźnieniem informuje kontener IoC, aby utworzył wystąpienie komponentu bean, gdy jest ono po raz pierwszy żądane, a nie podczas uruchamiania. |
8 | initialization method Wywołanie zwrotne, które ma zostać wywołane zaraz po ustawieniu przez kontener wszystkich niezbędnych właściwości komponentu bean. Zostanie to omówione w rozdziale dotyczącym cyklu życia fasoli. |
9 | destruction method Wywołanie zwrotne, które ma być używane, gdy kontener zawierający ziarno zostanie zniszczony. Zostanie to omówione w rozdziale dotyczącym cyklu życia fasoli. |
Metadane konfiguracji sprężyny
Kontener Spring IoC jest całkowicie oddzielony od formatu, w jakim faktycznie zapisywane są te metadane konfiguracji. Poniżej przedstawiono trzy ważne metody dostarczania metadanych konfiguracji do kontenera Spring:
- Plik konfiguracyjny oparty na XML.
- Konfiguracja oparta na adnotacjach
- Konfiguracja oparta na języku Java
Widzieliście już, jak metadane konfiguracji oparte na XML są dostarczane do kontenera, ale zobaczmy inny przykład pliku konfiguracyjnego opartego na XML z różnymi definicjami komponentów bean, w tym z opóźnioną inicjalizacją, metodą inicjalizacji i metodą niszczenia -
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- A simple bean definition -->
<bean id = "..." class = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with lazy init set on -->
<bean id = "..." class = "..." lazy-init = "true">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with initialization method -->
<bean id = "..." class = "..." init-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with destruction method -->
<bean id = "..." class = "..." destroy-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
Możesz sprawdzić Spring Hello World Example, aby dowiedzieć się, jak definiować, konfigurować i tworzyć Spring Beans.
Omówimy konfigurację opartą na adnotacjach w osobnym rozdziale. Celowo jest to omówione w osobnym rozdziale, ponieważ chcemy, abyś uchwycił kilka innych ważnych koncepcji Springa, zanim zaczniesz programować za pomocą Spring Dependency Injection with Annotations.