Aggiunta di convalide ai bean Java tramite annotazioni
-
05-07-2019 - |
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.
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.