Jestem zdezorientowany między ref a atrybut depend-on na wiosnę. Czytam dokument źródłowy, ale nadal jestem zdezorientowany. Chciałbym znać dokładną różnicę między tymi dwoma i w którym przypadku jeden zostanie użyty.ref vs atrybuty zależne-na wiosnę
Odpowiedz
Według spring documentation
Jeśli chcesz wyrazić zależność od wielu ziaren, możesz podać listę nazwisk fasoli jako wartość z „zależy na” atrybutu, z przecinkami, spacjami i średnikami wszystkich ważne ograniczniki, tak:
<bean id="beanOne" class="ExampleBean" depends-on="manager,accountDao">
<property name="manager" ref="manager" />
</bean>
<bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />
do „zależy na” atrybutu i właściwość jest używana nie tylko określić zależność czasową inicjalizacji, ale także określić odpowiedni zniszczyć zależność czasową (w przypadku pojedynczych ziaren wyłącznie). Ziarna zależne zdefiniowane w atrybucie "zależy od" zostaną najpierw zniszczone przed zniszczeniem samej fasoli. Dzięki temu można również kontrolować kolejność wyłączania.
Z drugiej strony, w większości przypadków fakt, że ziarno jest zależne od innego, wyraża się w fakcie, że jedna fasola jest ustawiona jako własność innej. Zwykle jest to realizowane za pomocą elementu w metadanych konfiguracyjnych opartych na języku XML.
<bean id="a" class="ClassA"/>
<bean id="b" class="ClassB">
<property name="aref" ref="a" />
</bean>
Zależy-on -> Fasola na której obecny fasola zależy. Wszystkie określone ziarna są gwarantowane przez kontener przed tym komponentem bean. Używany rzadko w przypadkach, w których komponent bean nie jest jednoznacznie zależny od innego przez właściwości lub argumenty konstruktora, ale zależy raczej od skutków ubocznych inicjalizacji innego komponentu bean.
W powyższej odpowiedzi dostarczonych poniżej stwierdzenie jest błędne,
„fasola zależne, które są zdefiniowane w«zależy na»atrybut zostanie zniszczona najpierw przed danym fasoli sama jest zniszczona”
Główny komponent zostanie najpierw zniszczony, a następnie zależne ziarna zostaną zniszczone.
Oto mój wynik testu,
zniszczyć głównego klasy nazywa.
Destroy of dependent jest wywoływana.
Pomóc może przykład sytuacji, w której potrzebna jest zależność. Używam Springa do ładowania i drobienia moich ziaren. Oto definicja przykład fasola:
<bean id="myBean" class="my.package.Class">
<property name="destination" value="bean:otherBeanId?method=doSomething"/>
</bean>
<bean id="otherBeanId" class="my.package.OtherClass"/>
Zauważ, że wartość nieruchomości jest ciągiem znaków, który odwołuje otherBeanId. Ze względu na sposób, w jaki ta zmienna jest rozwiązywana, Spring nie dowiaduje się o zależności, więc może ona zniszczyć inny obiekt: , a następnie: myBean myBean. To może pozostać przez pewien czas w stanie uszkodzonym.
mogę użyć zależy aby rozwiązać ten problem w następujący sposób:
<bean id="myBean" class="my.package.Class" depends-on="otherBeanId">
<property name="destination" value="bean:otherBeanId?method=doSomething"/>
</bean>
- 1. Klasa VS ref Struct
- 2. IntPtr vs ref C#
- 3. Python Język Pytanie: atrybuty obiektu() vs Funkcja
- 4. MessageInterpolator na wiosnę
- 5. Wyciąg atrybuty ciągu
- 6. Python "prywatne" mangling nazwy i instancja vs atrybuty klasy
- 7. Dziwne zachowanie clojure ref
- 8. Delegat z parametrem ref
- 9. Ref parametry i odbicie
- 10. Zarządzana klasa C++ ref.
- 11. Błąd ref. React
- 12. Przekazywanie informacji między krokami na wiosnę?
- 13. Jak zdefiniować EnumMap na wiosnę 3.0
- 14. MultipartConfig z serwletem 3.0 na wiosnę MVC
- 15. Konfigurowanie JDO na wiosnę 3.1?
- 16. globalne właściwości na wiosnę
- 17. Warunkowe zatwierdzenia na wiosnę
- 18. Powielanie formularza na wiosnę
- 19. Dynamiczne formy na wiosnę
- 20. json na wiosnę-boot
- 21. Terminologia kompilatora Fortran: zmienne atrybuty i atrybuty
- 22. Atrybuty a niestandardowe atrybuty w PropertyInfo
- 23. jak skonfigurować szablon jms na wiosnę dla weblogic?
- 24. Słowo kluczowe "ref" i AppDomains
- 25. componentDidMount wywołana przed ref zwrotnego
- 26. rozdzielczości Przeciążenie z Ref-kwalifikatorów
- 27. Przekaż wartość lub rvalue-ref
- 28. Kiedy używać ModelAndView kontra Model na wiosnę?
- 29. Nie mogę automatycznie wyposażyć repozytorium na wiosnę
- 30. Atrybuty Powershell?
To jest dobre wyjaśnienie :) – Krishna
@Anshu co, jeśli nie wiem, id Bean, ale imię i nazwisko? – verystrongjoe
Jest to bardzo pomocne przy przygotowywaniu komponentu A oczekującego na konstrukcję B fasoli, nawet jeśli B nie jest właściwością A. Uderzyłem w tę sprawę podczas testowania, gdzie potrzebowałem proxy sieciowej do zainicjowania przed klientem, mimo że klient nie wiedział nic o proxy. – Wheezil