Java >> Programma Java >  >> Tag >> Spring

Esercitazione primaverile AOP

In questa primavera AOP tutorial, scopri cos'è la programmazione orientata agli aspetti con un esempio. Scopri anche cosa sono le espressioni consiglio, punto di unione e taglio punto e come usarle nell'applicazione Spring con esempi.

1. Che cos'è la Primavera AOP?

Spring AOP consente la programmazione orientata agli aspetti nelle applicazioni primaverili. In AOP, gli aspetti consentono la modularizzazione di aspetti come la gestione delle transazioni, la registrazione o la sicurezza che interessano più tipi e oggetti (spesso chiamati problemi trasversali ).

AOP fornisce il modo per aggiungere dinamicamente il problema trasversale prima, dopo o attorno alla logica effettiva utilizzando semplici configurazioni collegabili. Semplifica anche la manutenzione del codice nel presente e nel futuro. Puoi aggiungere/rimuovere problemi senza ricompilare il codice sorgente completo semplicemente modificando i file di configurazione (se stai applicando aspetti che fanno causa alla configurazione XML).

2. Che cos'è un consiglio, un punto di giunzione o un pointcut?

  1. Un termine importante in AOP è consiglio . È l'azione intrapresa da un aspetto in un particolare punto di unione.
  2. Unisciti è un punto di esecuzione del programma, come l'esecuzione di un metodo o la gestione di un'eccezione. In Spring AOP, un joinpoint rappresenta sempre l'esecuzione di un metodo.
  3. Taglio di punta è un predicato o un'espressione che corrisponde ai punti di unione.
  4. Consigli è associato a un'espressione pointcut e viene eseguito in qualsiasi punto di unione corrispondente al pointcut.
  5. Spring utilizza il linguaggio delle espressioni pointcut AspectJ per impostazione predefinita.

3. Tipi di consigli AOP

Ci sono cinque tipi di consigli in primavera AOP.

  1. Prima del consiglio :consiglio che viene eseguito prima di un punto di unione, ma che non ha la capacità di impedire che il flusso di esecuzione proceda verso il punto di unione (a meno che non generi un'eccezione).
  2. Dopo aver restituito il consiglio :Consiglio da eseguire dopo il completamento normale di un punto di unione:ad esempio, se un metodo ritorna senza generare un'eccezione.
  3. Dopo aver lanciato consigli :Consiglio da eseguire se un metodo esce generando un'eccezione.
  4. Dopo un consiglio :Consiglio da eseguire indipendentemente dal mezzo con cui un punto di unione esce (ritorno normale o eccezionale).
  5. Intorno ai consigli: Consigli che circondano un punto di unione come una chiamata di metodo. Questo è il tipo di consiglio più potente. Around consiglio può eseguire un comportamento personalizzato prima e dopo l'invocazione del metodo. È inoltre responsabile della scelta se procedere al punto di unione o abbreviare l'esecuzione del metodo consigliato restituendo il proprio valore di ritorno o generando un'eccezione.

4. Esempio AOP di primavera

4.1. Dipendenze Maven

Prima di scrivere qualsiasi codice, dovrai importare dipendenze Spring AOP nel tuo progetto.

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>5.2.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.2.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.9.5</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.5</version>
</dependency>

Abilita la configurazione AOP nelle applicazioni Spring.

@Configuration
@EnableAspectJAutoProxy
public class AopConfig {

}

4.2. Espressione di aspetto e punto di taglio

Scrivi una classe di aspetto annotata con @Aspect annotazione e scrittura di espressioni di taglio del punto in modo che corrispondano ai metodi del punto di giunzione.

@Aspect
public class EmployeeCRUDAspect {
     
    @Before("execution(* EmployeeManager.getEmployeeById(..))")			//point-cut expression
    public void logBeforeV1(JoinPoint joinPoint)
    {
        System.out.println("EmployeeCRUDAspect.logBeforeV1() : " + joinPoint.getSignature().getName());
    }
}

4.3. Metodi (punti congiunti)

Scrivi i metodi su cui vuoi eseguire i consigli e quelli che corrispondono alle espressioni point-cut.

@Component
public class EmployeeManager
{
    public EmployeeDTO getEmployeeById(Integer employeeId) {
        System.out.println("Method getEmployeeById() called");
        return new EmployeeDTO();
    }
}

Nell'esempio sopra, logBeforeV1() verrà eseguito prima getEmployeeById() metodo perché corrisponde all'espressione del punto di unione.

4.4. Esegui l'applicazione

Esegui l'applicazione e guarda la console.

public class TestAOP
{
    @SuppressWarnings("resource")
    public static void main(String[] args) {
 
        ApplicationContext context = new ClassPathXmlApplicationContext
        					("com/howtodoinjava/demo/aop/applicationContext.xml");

        EmployeeManager manager = context.getBean(EmployeeManager.class);
 
        manager.getEmployeeById(1);
    }
}

Uscita del programma:

EmployeeCRUDAspect.logBeforeV1() : getEmployeeById
Method getEmployeeById() called

Tutorial di primavera aop per principianti con esempio.

5. Esempi di configurazione XML AOP di primavera

  1. Esempio di configurazione XML AOP AspectJ di Spring

    Impara a configurare gli aspetti AOP usando la configurazione XML.

  2. Esempio AOP di primavera prima del consiglio

    Impara a configurare l'aspetto aop prima del consiglio usando <aop:before/> configurazione.

  3. Primavera AOP dopo aver restituito un esempio di consiglio

    Impara a configurare aop dopo aver restituito l'aspetto del consiglio usando <aop:after-returning/> configurazione.

  4. Primavera AOP dopo aver lanciato un esempio di consiglio

    Impara a configurare aop dopo aver lanciato l'aspetto del consiglio usando <aop:after-throwing/> configurazione.

  5. Esempio AOP di primavera dopo il consiglio

    Impara a configurare l'aspetto aop dopo il consiglio usando <aop:after/> configurazione.

  6. Esempio di consigli di Spring AOP Around

    Impara a configurare aop sull'aspetto dei consigli usando <aop:around/> configurazione.

6. Esempi di annotazioni di Spring AOP AspectJ

  1. Esempio di configurazione dell'annotazione di Spring AOP AspectJ

    Impara a configurare gli aspetti AOP usando la configurazione delle annotazioni di aspectj.

  2. Aspetto AOP di primaveraJ @Prima dell'esempio

    Impara a configurare l'aspetto aop prima del consiglio usando @Before annotazione.

  3. Aspetto AOP di primaveraJ @dopo l'esempio

    Impara a configurare l'aspetto aop dopo il consiglio usando @After annotazione.

  4. Aspetto AOP di primaveraJ @Around Esempio

    Impara a configurare aop sull'aspetto dei consigli usando @Around annotazione.

  5. Aspetto AOP di primaveraJ @Esempio AfterReturning

    Impara a configurare aop dopo aver restituito l'aspetto del consiglio usando @AfterReturning annotazione.

  6. Aspetto AOP di primaveraJ @Esempio AfterThrowing

    Impara a configurare aop dopo aver lanciato l'aspetto del consiglio usando @AfterThrowing annotazione.

7. Altro tutorial di primavera AOP

  1. Ordinazione degli aspetti AOP di primavera

    Impara a ordinare l'esecuzione degli aspetti in caso di più aspetti che devono essere eseguiti in un determinato ordine.

  2. Espressioni Pointcut di Spring AOP AspectJ con esempi

    Impara a scrivere espressioni pointcut per abbinare una varietà di punti di unione.

8. Domande per l'intervista

Domande principali dell'intervista primaverile AOP con risposte

Alcune delle domande più frequenti dell'intervista AOP primaverile nelle interviste java.

9. Risorse AOP primaverili:

Primavera AOP Doc
AspettoJ

Buon apprendimento!!


Etichetta Java