Tipo di un titolo lungo, ma generalmente è la domanda.È una buona idea utilizzare gli aspetti come metodo per rimuovere i controlli difensivi dalla logica dell'applicazione?
voglio sapere se si pensa che la sua una buona idea per fare quanto segue.
Invece di:
public void buyItem(int itemId, int buyerId) {
if (itemId <= 0) {
throw new IlleglArgumentException("itemId must be positive");
}
if (buyerId <= 0) {
throw new IlleglArgumentException("buyerId must be positive");
}
// buy logic
}
voglio avere qualcosa di simile:
@Defensive("isPositive(#itemId, #buyerId)")
public void buyItem(int itemId, int buyerId) {
// buy logic
}
Pensi che questo è un bene/terribile/troppo di fantasia/troppo lento? Se effettivamente pensa che la sua buona Stavo pensando di utilizzare SpEL per la sua attuazione, qualcuno ha qualcosa di meglio/più leggero/più veloce in mente?
Grazie,
e introduce un'altra lingua all'interno delle annotazioni . –
In realtà questa domanda mi è venuta in mente esattamente come un effetto collaterale dell'uso di '@ Secured'. Ma dal momento che già usiamo '@ Secured' per la sicurezza a livello di metodo, sarebbe confuso usarlo per i controlli difensivi IMO, è per questo che sto chiedendo idee per farlo e poiché' @ Secured' e '@ PreAuthorize' usano SPEL I pensato che sia la scelta più ovvia. – Simeon
Perché il downvote? – Simeon