2013-04-12 286 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+.*(..))"