English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Programação Orientada a Aspecto(AOP) em certo sentido é uma complementação do OOP, pois também oferece funcionalidades modulares. Mas a unidade chave da modularização é o aspecto em vez da classe.
AOP divide a lógica do programa em diferentes partes (chamadas de pontos de atenção). É usado para Interesses transdisciplinarespara melhorar a modularização.
cruz-cortando preocupaçõesÉ um ponto de atenção que afeta toda a aplicação e deve ser concentrado o mais possível em um único local no código, por exemplo, gestão de transações, autenticação, logs, segurança, etc.
Por que usar AOP?
Ele oferece uma maneira plugável de adicionar dinamicamente pontos de atenção adicionais antes, após ou ao redor da lógica real. Suponha que uma classe tenha10métodos, conforme mostrado:
class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} }
Começando com m5Esse método, começando com n2Esse método, começando com p3Esse método.
Entender a situaçãoEu tenho que manter logs e enviar
Problemas sem AOPPodemos chamar métodos começando com m (manutenção de logs e envio de notificações). Neste caso, precisamos usar todos5Esse método escreve código.
Mas, se o cliente disser mais tarde, eu não preciso enviar notificações, precisamos alterar todos os métodos. Isso causará problemas de manutenção.
Solução AOPNós não precisamos chamar métodos de dentro de métodos. Agora, podemos definir outros pontos de atenção nas métodos da classe, como manutenção de logs, envio de notificações, etc. Suas entradas estão no arquivo xml.
No futuro, se o cliente disser que queremos remover a função de notificação, precisamos apenas fazer alterações no arquivo xml. Portanto, a manutenção em AOP é fácil.
AOP é principalmente usada nas seguintes situações:
Fornece serviços empresariais declarativos, como gestão de transações declarativa. Permite que o usuário implemente aspectos personalizados.
Os conceitos e termos da AOP são os seguintes:
Join point Advice Pointcut Introdução Objeto Alvo Aspect Interceptor Proxy AOP Tecelagem
Join point é qualquer ponto no programa, por exemplo, execução de método, tratamento de exceção, acesso a campo, etc. O Spring suporta apenas Join point de execução de método.
Advice representa a operação que o aspecto toma em um Join point específico. Existem diferentes tipos de Advice:
Before Advice: Ele é executado antes do Join point. After Returning Advice: Ele é executado após a conclusão normal do ponto de interseção. After Throwing Advice: Se o método sair devido a uma exceção, ele será executado. After (finally) Advice: Independentemente de o Join point sair de forma normal ou por exceção, ele será executado após o Join point. Around Advice: Ele é executado antes e após o Join point.
É uma linguagem de expressão AOP, que coincide com o Join point.
Isso significa outros métodos e campos do tipo de introdução. Permite que você introduza novas interfaces em qualquer objeto de conselho.
Este é um objeto que contém uma ou mais sugestões de aspectos. No Spring, também é chamado de objeto proxy, porque o Spring AOP é implementado usando proxy de tempo de execução.
Este é um tipo de classe que contém conselhos, pontos de interseção, etc.
Este é um aspecto que contém apenas um conselho.
Usado para implementar o contrato de aspecto criado pelo framework AOP. No framework Spring, ele será o proxy dinâmico do JDK ou o proxy CGLIB.
Este é o processo de conectar aspectos a outros tipos de aplicativos ou objetos para criar objetos de conselho. A tecelagem pode ser concluída no tempo de compilação, no tempo de carregamento ou no tempo de execução. O Spring AOP executa a tecelagem no tempo de execução.
A implementação do AOP é fornecida a seguir:
AspectJ AOP do Spring AOP do JBoss
O AOP do Spring pode ser usado de três maneiras. No entanto, o método amplamente utilizado é o estilo de anotação do AspectJ do Spring. A seguir estão fornecidos exemplos de uso do AOP do Spring.3Métodos:
Utilizando o Spring1.2Estilo Antigo (Baseado em dtd) (No Spring3(Também é suportado no meio) Estilo de Anotação do AspectJ Estilo de Configuração de Estilo (Baseado em Padron)