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?
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.
publicLongmetodo1(Stringparametro1,doubleparametro2){Longretorno;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”.
A
alots_ssa
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 é. ).
Alberto
D
davidhc
ah então o que eu coloquei sobre anotações, esta meio correto
é acessado em tempo de execução
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?
Sami_Koivu
davidhc:
ah então o que eu coloquei sobre anotações, esta meio correto
é acessado em tempo de execução
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
D
davidhc
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!