Validating parameters and arguments
Custom annotations can also be aspects to validate if arguments passed to @Service
methods are appropriate or not. The following recipe will use AOP paradigms to intercept parameter passing.
Getting started
Open ch05
and add an @Aspect
that will utilize custom annotation to validate the employee ID parameter of the readEmployee()
service method of TransactionTemplate
.
How to do it...
Let us now perform validation on method arguments by doing the following steps:
- This recipe will start with the creation of a class-level annotation which is not a transactional type, just like in the previous recipe. Using again the Reflection API, implement an annotation that will be used by an
@Aspect
to intercept parameter passing.
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) public @interface NegativeArgs { }
- Since a valid employee ID is a positive number, create an aspect that will validate if the
empId
argument passed ontoreadEmployee()
ofEmployeeServiceImpl...