Domanda

Voglio aggiungere convalide a un Java Bean. Ad esempio, voglio fare quanto segue:

@MaxLength(50)
@RequiredField
public void setEmployeeName(String name){
   .....
}

So di poter scrivere il codice che ottiene le convalide per un metodo specifico chiamando method.getDeclaredAnnotation dopo aver impostato tutti i valori del bean. Vorrei evitare di scrivere questo codice

Esiste qualcosa in Java6 che fornisce convalide standard tramite annotazioni? Ho bisogno di un aspetto per invocare queste annotazioni?

grazie in anticipo.

È stato utile?

Soluzione

Puoi usare Bean Validation Framework. Ecco una breve panoramica http://relation.to/Bloggers/BeanValidationSneakPeekPartI

Altri suggerimenti

dai un'occhiata a JSR 303 . Il RI (Implementazione di riferimento) è qui , con anche un bel tutorial . E no, non hai bisogno di AspectJ.

L'unico modo in cui sarai in grado di farlo è attraverso le riflessioni e un'utilità / interceptor / proxy di convalida personalizzata. JSR 303 e JSR 305 sono stati proposti per introdurre funzionalità simili, ma non esiste nulla di simile.

Uno dei problemi che incontrerai è che queste annotazioni devono essere gestite a una sorta di livello di framework, o come minimo, intercettate prima di una sorta di azione invocata. I due modi più comuni di agire con la forza bruta per farlo sarebbero o creando un programma di utilità o convalidando il pre-invoke in un gestore di invocazione (proxy).

La realtà è che, a meno che questo non sia integrato in Spring, Struts, Guice, Java stesso, ecc., stai solo creando un sovraccarico non necessario e stai meglio controllando i limiti di validazione su richiesta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top