No sé el significado de usar proxy en la primavera. ¿Qué es eficiente?¿Cuál es el significado de usar proxy (proxy dinámico) en el marco de primavera?
Respuesta
El dynamic proxy es una característica del JDK. Se puede usar para implementar una interfaz usando an invocation handler.
Una clase proxy dinámico (denominado simplemente como una clase de proxy a continuación) es una clase que implementa una lista de interfaces especificados en tiempo de ejecución cuando la clase es creado, con el comportamiento tal como se describe continuación. Una interfaz proxy es una interfaz que se implementa mediante una clase de proxy . Una instancia de proxy es una instancia de una clase de proxy. Cada instancia de proxy tiene un objeto de controlador de invocación asociado , que implementa la interfaz InvocationHandler .
Un proxy dinámico tiene algunos gastos generales. Para la mayoría de los casos de uso, los gastos generales no serán significativos, sin embargo. El verdadero problema es que el (sobre) uso de proxies dinámicos hace que una aplicación sea más difícil de comprender y depurar. Por ejemplo, un proxy dinámico se mostrará con varias líneas en una pila stack.
Los proxies dinámicos se utilizan a menudo para implementar decorators. Un ejemplo de esto es AOP en Spring. (No quiero entrar en los detalles de AOP y no usaré la terminología de AOP para mantener las cosas simples). Donde ciertas preocupaciones se implementan en una clase y se usan en muchos lugares. Los proxies dinámicos (y los manejadores de invocación) son solo el código de pegamento (provisto por Spring) para interceptar las llamadas a métodos. (En realidad, los proxies dinámicos son solo un detalle de implementación de esta capacidad. Generar clases sobre la marcha es otra posibilidad para implementarlo.)
¿Por qué implementamos eso? Quiero preguntar sobre la metodología o las mismas cosas – Linh
Los apoderados son utilizados por AOP. En resumen:
Normalmente lo tiene.
Caller --> Real object
Pero cuando, por ejemplo, desea la gestión de transacciones automáticas, primavera pone un proxy de su objeto real
Caller --> Proxy --> Real object
donde el proxy inicia la transacción.
Here is nice article explicar tanto la esencia de la representación y su eficiencia (rendimiento) en primavera
Bozho, es una explicación muy buena. – lwpro2
siguiente pregunta - ¿Por qué la primavera necesita usar aop? Solo conozco la anotación @Transaction – gstackoverflow
Muchas otras cosas. Almacenamiento en caché, por ejemplo. Explotación florestal. Pista de auditoría. O cualquier otra cosa que puedas desarrollar tú mismo – Bozho
Podemos añadir una funcionalidad de clase Java mediante la modificación del código fuente/byte o mediante el uso de subclase o un proxy que incrusta la funcionalidad adicional y delega las llamadas al objeto subyacente.
AOP también puede usar proxies CGLIB. Esto se usa para proxy las clases en lugar de interfaces.
Las otras respuestas son buenas, pero así es como pienso en términos muy simples.
- Una anotación significa "agregar código oculto para un comportamiento adicional".
- El marco (o lo que sea que sepa lo que significa la anotación) agrega bytecode, Spring en tiempo de ejecución, AspectJ en tiempo de compilación, por ejemplo.
- Agrega código como un proxy junto con un interceptor. (Un envoltorio, decorador, adaptador son similares y pueden ser más fáciles de entender que "proxy").
- Cuando el programa se ejecuta, el interceptor envía la ejecución al proxy que hace lo suyo, que luego puede o no enviar la ejecución a la clase que codificaste y que "envuelve".
- 1. ¿Cuál es el significado del proxy en EntityFramework?
- 2. Entidad Proxy Marco
- 3. ¿Es posible usar el proxy HTTPS en la unidad HTML?
- 4. Cómo desenvolver el objeto original de un proxy dinámico
- 5. Coste de rendimiento del proxy dinámico Java
- 6. Proxy dinámico y excepciones marcadas
- 7. Cuál es la definición de proxy-aware
- 8. Transacción de primavera: confusión de proxy
- 9. creación de proxy dinámico de castillo
- 10. Seguridad de primavera y proxy AJP
- 11. ¿Cuál es el contexto de aplicación y la fábrica de frijol en el marco de primavera
- 12. Proxy dinámico sin especificar explícitamente el tipo en scala
- 13. ¿Cuál es la diferencia entre el proxy dinámico JDK y CGLib?
- 14. Proxy dinámico para las clases concretas
- 15. ¿Cuál es el significado de []
- 16. ¿Cuál es el significado de ∃?
- 17. ¿Cuál es el significado de '==' en C?
- 18. El objeto proxy en EJB
- 19. ¿Cuál es el equivalente .Net de los Proxy dinámicos de Java?
- 20. ¿Cuál es el significado de @_ en Perl?
- 21. ¿Cuál es el significado de $$ en Ruby?
- 22. ¿Cuál es el significado de '_' en python?
- 23. ¿Qué es el contenedor en el marco de primavera?
- 24. Javassist: ¿cómo crear proxy de proxy?
- 25. Delphi THTTPRio cómo usar el servidor proxy de autenticación
- 26. ¿cuál es el objeto de comando en el marco de primavera
- 27. ¿Cuál es el significado de android.location.LocationManager.PASSIVE_PROVIDER?
- 28. JSON Serializar JDK proxy dinámico con la biblioteca de Jackson
- 29. Cómo usar los fantasmas junto con el nodo-http-proxy?
- 30. ¿Cómo puedo convertir un proxy dinámico en un POCO?
¿qué significa "what is efficient?" – skaffman