2016-04-02 1 views
1

Аннотация:передача результата аннотаций работы аннотированный метод

@Target(ElementType.METHOD) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Multipart { 

    Class acceptClass(); 

} 

Аннотированный метод:

@Multipart (acceptClass = SomeClass.class) 
public void someMethod(SomeClass a){ 
    //do stuff.. 
} 

MultipartAspect:

@Aspect 
public class MultipartAspect { 

    @Autowired(required=true) 
    private HttpServletRequest request; 

    @Pointcut(value = "@annotation(Multipart)", argNames = "multipart") 
    public void before(JoinPoint jp, Multipart multipart) {} 

    @Before("before()") 
    public SomeClass doStuffBeforeThing() { 
     SomeClass sc = new SomeClass(); //object of passed class 
     //do something.. 
     return sc;      //return this to annotated method(somemethod) 
    } 

} 

Я хочу, прежде чем метод работы выполнить аннотацию, создать объект (SomeClass) и объект пропуска этого класса в аннотированный метод. Могу ли я это сделать?

ответ

0

Вы должны использовать @Around совет вместо @Before.