Nie znam znaczenia używania proxy na wiosnę. co jest wydajne?Jakie jest znaczenie używania proxy (proxy dynamiczne) w ramach wiosennej?
Odpowiedz
The dynamic proxy jest funkcją JDK. Można go użyć do implementacji interfejsu przy użyciu an invocation handler.
klasy dynamicznej proxy (w skrócie określane jako klasa Pełnomocnik poniżej) to klasa który implementuje listę interfejsów określonych w czasie działania, gdy klasa utworzony z zachowaniem jak opisano poniżej. Interfejs proxy to taki interfejs , który jest implementowany przez klasę proxy . Instancja serwera proxy to instancja klasy proxy. Każda instancja serwera proxy ma powiązany obiekt wywołania , który implementuje interfejs InvocationHandler interfejsu .
Dynamiczny proxy ma trochę narzut. W większości przypadków obciążenie nie będzie jednak znaczące. Prawdziwy problem polega na tym, że (nadmierne) użycie dynamicznych serwerów proxy sprawia, że aplikacja jest trudniejsza do zrozumienia i debugowania. Na przykład dynamiczny serwer proxy pojawi się z liniami mulitple w stosie stacktrace.
Dynamiczne proxy są często używane do implementacji decorators. Jednym z przykładów tego jest AOP na wiosnę. (Nie chcę zagłębiać się w szczegóły AOP i nie będę używał terminologii AOP, aby wszystko było proste). Gdzie pewne obawy są wdrażane w jednej klasie i używane w wielu miejscach. Dynamiczne serwery proxy (i procedury obsługi wywołań) są tylko kodem kleju (dostarczonym przez Spring) w celu przechwycenia wywołań metod. (W rzeczywistości dynamiczne proxy są tylko szczegółami implementacji tej możliwości, a generowanie klas w locie jest kolejną możliwością implementacji.)
Dlaczego to wdrażamy? Chcę zapytać o metodologię lub te same rzeczy. – Linh
Serwery proxy są używane przez AOP. W skrócie:
Zwykle masz.
Caller --> Real object
Ale gdy, na przykład, chcesz automatyczne zarządzanie transakcji, wiosna stawia pełnomocnictwa swojego rzeczywistego obiektu
Caller --> Proxy --> Real object
gdzie proxy rozpoczyna transakcję.
Here is nice article wyjaśniając zarówno istotę prokurentów i ich efektywności (wydajności) na wiosnę
Bozho, to bardzo miłe wyjaśnienie. – lwpro2
następne pytanie - dlaczego wiosną trzeba użyć aop? Wiem tylko adnotację @Transaction – gstackoverflow
Wiele innych rzeczy. Buforowanie, na przykład. Wycięcie lasu. Ścieżka audytu. Lub cokolwiek innego możesz się rozwijać – Bozho
Możemy dodać funkcjonalność klasy Javy poprzez modyfikację źródłowego/kod bajtowy lub przy użyciu podklasy lub pełnomocnika, który osadza się dodatkowe funkcje i deleguje wywołania do ukrytego obiektu.
AOP może również używać serwerów proxy CGLIB. Służy do proxy klas zamiast interfejsów.
Inne odpowiedzi są dobre, ale oto, jak myślę o tym w bardzo prosty sposób.
- Adnotacja oznacza "dodaj ukryty kod, aby uzyskać dodatkowe zachowanie."
- Ramy (lub cokolwiek wie, co oznacza adnotacja) dodaje kod bajtowy, Spring w czasie wykonywania, AspectJ w czasie kompilacji, na przykład.
- Dodaje kod jako serwer proxy wraz z przechwytywaczem. (Opakowanie, dekorator, adapter są podobne i mogą być łatwiejsze do zrozumienia niż "proxy").
- Po uruchomieniu programu przechwytujący wysyła żądanie do serwera proxy, który wykonuje swoje zadanie, które następnie może lub nie może wysłać wykonania do klasa, którą zakodowałeś i która "owija".
- 1. Dynamiczne tworzenie klasy proxy
- 2. Java8 dynamiczne proxy i domyślne metody
- 3. tworzenie dynamicznego proxy proxy
- 4. Jakie jest znaczenie IMetadataExchange w WCF?
- 5. Javassist: jak utworzyć proxy proxy?
- 6. Usługi symulacyjne w ramach innej usługi wiosennej z użyciem mockito
- 7. Koszt wydajności dynamicznego proxy Java
- 8. Jakie jest znaczenie operatora || =
- 9. Jakie jest znaczenie System.CLSCompliantAttribute?
- 10. Jakie jest znaczenie operatora &?
- 11. Jakie jest znaczenie CTOR?
- 12. Jakie jest dokładne znaczenie inwazji? a co sprawia, że Spring jest nieinwazyjny?
- 13. Jakie jest znaczenie transakcji?
- 14. Jakie jest znaczenie! #: 3?
- 15. Jakie jest znaczenie identyfikatora?
- 16. jakie jest znaczenie CV_INSTRUMENT_REGION()?
- 17. Okno dokowane konfiguracji proxy proxy Nginx
- 18. Sposób automatycznego wykrywania/używania ustawień proxy IE w .net HttpWebRequest
- 19. Serwer proxy w oknie
- 20. Hasła cleartext mysql-proxy
- 21. NTLM proxy bez hasła?
- 22. dynamiczne proxy z jmx może powodować przecieki nici?
- 23. Jaki jest kontekst aplikacji i fabryka fasola w ramach wiosennej
- 24. Ustawianie proxy w wget
- 25. Co oznacza tryb przestrzeni użytkownika w trybie proxy kube-proxy?
- 26. jakie jest znaczenie numeru 1e5?
- 27. Jakie jest znaczenie SQL 0x5E5B7D7E?
- 28. Jakie jest znaczenie wyrażenia "+ + a"?
- 29. Jakie jest znaczenie tego typedef?
- 30. Serwery proxy hibernacji i `Obiekt # jest równy`
co masz na myśli "co jest skuteczne?" – skaffman