Utilizzo la classe Preconditions di Google per convalidare i dati di input dell'utente.
Ma sono preoccupato di dove sia il punto migliore per verificare i dati di input dell'utente utilizzando la classe Preconditions.
In primo luogo, ho scritto validazione del codice del check-in di controllo come di seguito:Verificare le precondizioni nel livello Controller o Service
@Controller
...
public void register(ProductInfo data) {
Preconditions.checkArgument(StringUtils.hasText(data.getName()),
"Empty name parameter.");
productService.register(data);
}
@Service
...
public void register(ProductInfo data) {
productDao.register(data);
}
ma ho pensato che register
metodo livello di servizio sarebbe utilizzando un altro metodo di controllo come di seguito:
@Controller
...
public void register(ProductInfo data) {
productService.register(data);
}
public void anotherRegister(ProductInfo data) {
productService.register(data);
}
@Service
...
public void register(ProductInfo data) {
Preconditions.checkArgument(StringUtils.hasText(data.getName()),
"Empty name parameter.");
productDao.register(data);
}
D'altra parte , il metodo del livello di servizio verrebbe utilizzato in un solo controller.
Ero confuso. Qual è il modo migliore per controllare le precondizioni nel controller o nel servizio?
Grazie in anticipo.
Definitivamente d'accordo che si dovrebbe usare la convalida del bean, specialmente se il DAO sta usando ORM. – hyness