2013-04-12 284 views
3

我是Spring的新手,我遇到了一個方面的問題。切入點是使用通用輸入接口:Spring AOP Generic Typing

public interface DaoJdbc<T> { 
    public void create(T input); 
    public T read(int id); 
    public void update(T s); 
    public void delete(int id); 
    public void getDailyMessage(); 
} 

這裏是我的方面:

<aop:aspect ref="security"> 
    <aop:pointcut id="passwordNeeded" 
     expression="execution(* com.user.service.DaoJdbc.*(..))" /> 
    <aop:before pointcut-ref="passwordNeeded" method="check" /> 
</aop:aspect> 

的方面將爲delete()工作,但不是爲create()。如果我使用DaoJdbc的實現,而不是接口本身(我不想這麼做),它將用於'create()'。我可以認爲這是一個問題,update()使用通用類型,delete()不使用。有什麼辦法可以使用界面來實現這個功能嗎?提前致謝。

回答

2

找到解決方案,需要加號來表示通用。

expression="execution(* com.user.service.DaoJdbc+.*(..))"