AOP / anotações

Opa :smiley:

To com dúvida no que seria ‘orientação a aspectos’ e anotação.
AOP eu não entendi nada, mas anotações parece q qdo vc coloca uma, a classe/método só é acessado quando precisa…estou certo?

alguém pode me dar uma luz sobre essas dúvidas? hehe

[]'s

edit: aproveitando, alguém pode me dizer um exemplo prático do que seria uma regra de negócio?

Eu tbm tenho essas mesmas duvidas…
ultimamente falam tanto de Ascpectos…
mas até agora não entendi nada…

:[

Eu pesquisei sobre anotações e entendi mais ou menos aquilo…o método é chamado/compilado quando precisar só, mas não entendi :S

regras de negócio cada hora eu ouço que regras de negócio é uma coisa

e AOP, continuo na mesma

:[

Opa!
Dêem uma olhada nesse artigo:

http://www.javafree.org/javabb/viewtopic.jbb?t=6626

…espero que ajude a esclarecer as dúvidas.

[]'s

Valeu…
ajudou bastante.

:smiley:

Acho que a maneira mais fácil de entender AOP é a seguinte:

Suponha que você queira debugar o seu programa pondo uma chamada a uma função de log que imprime os parâmetros em cada chamada de método e em cada retorno.

public Long metodo1 (String parametro1, double parametro2) {
    Long retorno;
    if (log.enabled()) {
        log.debug ("metodo1: parametro1 = " + parametro1 + ", parametro2 = " + parametro2);
    }
    -- seu código aqui ---
    if (log.enabled()) {
        log.debug ("metodo1: retorno = " + retorno);
    }

Você sabe que isso é muito braçal, e gostaria de um método automático para fazer isso (modificar seu programa “automaticamente”).
Aí você pode usar o AOP, que é uma forma de modificar seu programa sem ter de escrevendo isso “manualmente”.

As anotações são como metadados da classe, metodo ou atributo que vc pode acessar em tempo de execução e descobrir coisas sobre estes itens. Tem o mesmo objetivo do xml mas é muito melhor de trabalhar pois é puro java(por exemplo da erro de compilação e vc nao fica um tempão tentando descobrir o que é. :slight_smile: ).

Alberto

ah então o que eu coloquei sobre anotações, esta meio correto :smiley:

é acessado em tempo de execução :stuck_out_tongue:

edit: sobre AOP, vejam se estou certo: seria quando vc ‘agrupa’ algum código que tem função parecida dentro de um método…essa junção seria o aspecto…no link que foi passado acima, vc checa a permissão apenas em um bloco estático de códsigo…ali seria o aspect…certo?

uma dúvida, com o AspectJ, é feito automaticamente?

[quote=davidhc]ah então o que eu coloquei sobre anotações, esta meio correto :smiley:

é acessado em tempo de execução :stuck_out_tongue: [/quote]

Olá,

pelo que eu tenho entendido há três tipos de anotações.

(RetentionPolicy.SOURCE)
:arrow: Aquelas que são somente para o código fonte e não são incluídos pelo compilador. Por exemplo, a SuppressWarnings.

(RetentionPolicy.CLASS)
:arrow: Aquelas que são gravados nos arquivos .class, mas não são carregados em tempo de execução

(RetentionPolicy.RUNTIME)
:arrow: Aquelas que são disponibilizadas para o tempo de execução.

[]s,
Sami

Certo Sami, então fia assim:

(RetentionPolicy.SOURCE) - ela é apenas criada no código fonte, não é compilada e nem acessada.

(RetentionPolicy.CLASS) - é carregada apenas quando for necessária.

(RetentionPolicy.RUNTIME) - quando executa, ela é carregada!

Acho que está errado…ou me confundi todo :shock: