Ho appena iniziato a leggere di primavera, e un libro ha menzionato "Spring AOP è un framework basato su proxy". Cosa si intende per "Proxy based framework".
Ho appena iniziato a leggere di primavera, e un libro ha menzionato "Spring AOP è un framework basato su proxy". Cosa si intende per "Proxy based framework".
Il framework utilizza java.lang.reflect.Proxy
per eseguire il lavoro
In generale, l'Aspect Oriented Programming (AOP) in Java viene implementato mediante la strumentazione degli oggetti target in qualche modo. Ci sono molti modi per farlo, ma un approccio comune è usare la classe Proxy
.
Questo fornisce la possibilità di creare un nuovo oggetto in fase di esecuzione in base a una determinata interfaccia. È quindi possibile regolare il comportamento del proxy per includere funzionalità aggiuntive, come la registrazione o il codice di sicurezza, prima di passare il controllo all'oggetto originale.
Un approccio alternativo consiste nell'utilizzare la sottoclasse. Il proxy estende la classe originale e tesse l'aspetto prima di restituirlo alla super classe. Questo fallisce se la tua classe ha metodi finali che richiedono il proxy.
Puoi leggere ulteriori informazioni al riguardo nel riferimento Java qui: link
In alternativa, dai un'occhiata a Spring in Action (p. 124).
Come dice Gary Rowe: alcune implementazioni di Aspect Oriented Programming si basano generalmente sull'imposizione di uno strato tra l'oggetto e il resto del sistema. Questo livello viene solitamente chiamato proxy o proxy dinamico.
Dal sito del progetto Castle :
Proxy objects can assist in building a flexible application architecture because it allows functionality to be transparently added to code without modifying it. For example, a class could be proxied to add logging or security checking without making the code aware this functionality has been added.
Leggi altre domande sui tag frameworks