Java - Usa annotazioni e metodi di intercettazione?
-
28-10-2019 - |
Domanda
Esiste un modo semplice per intercettare i metodi in Java. Devo aggiungere un'annotazione ai metodi richiesti in modo che un pezzo di logica venga chiamato prima di passare attraverso il metodo.
public void verifyActivity() {
// Asset if you are on a wrong page
}
@VerifyActivity
public void testLogin() {
// Login for my automate test
}
@VerifyActivity
public void testSomethingElse() {
// Test some other UI Automation stuff
}
MODIFICARE:
La libreria Guice consigliata per le app Android non contiene AOP. È possibile raggiungere questo obiettivo usando la riflessione senza aggiungere librerie?
Soluzione
Guice fornisce un modo semplice di implementare annotazioni. Controllalo.
Altri suggerimenti
Come ha detto Sid Malani Google Guice è fantastico per questo. In generale vuoi leggere Tutorial di programmazione orientata all'aspetto ... c'è un bel strumento chiamato Jmangler Potrebbe anche essere utile
Puoi usare la riflessione se hai codificato per interfacce Proxy dinamici.
Dubito che possa essere ben fatto senza libri di terza parte.
C'è una biblioteca chiamata CGLIB, che è capace di tali cose.
Fondamentalmente creerà una sottoclasse della classe intercettata in fase di esecuzione. Sarai in grado di "sovrascrivere" i metodi implementando un HinvocationHandler, che fungerà da proxy quando uno dei metodi superclasse viene chiamato.