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
@Aspectto 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
empIdargument passed ontoreadEmployee()ofEmployeeServiceImpl...