2016-04-02 7 views
1

Annotation:Pass Ergebnis der Anmerkung zu kommentierten Methode Arbeit

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

    Class acceptClass(); 

} 

Kommentierte Methode:

@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) 
    } 

} 

Ich möchte vor Methode funktioniert Anmerkung ausführen, erstellen Aufgabe übergebene Klasse (SomeClass) und das übergebene Objekt dieser Klasse annotierte Methode. Könnte ich das tun?

Antwort

0

Sie sollten @Around-Rat statt @Before verwenden.

Verwandte Themen