我可以使用@annotation
使用基于Spring xml的配置定义切入点,还是仅在我使用注释定义切入点时才能使用?
这有用吗?
<aop:pointcut id="inPreparedStatementLoggingMethod" expression="@annotation(com.blah.dao.LogPreparedStatement)"/>
带注释的方法在一个抽象的Spring bean中。我可以建议 abstract Spring bean中的方法吗?
<bean id="baseSqlDao" class="com.blah.dao.BaseSqlDao" abstract="true">
<description>Abstract super-class for most of the database access objects</description>
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
我还有一些其他切入点和方面正在发挥作用,但它从来没有在这方面的方法中遇到过断点。
<aop:aspect id="preparedStatementLoggingAspect" ref="methodProfileAspect">
<aop:around method="doPreparedStatementLogging" pointcut-ref="inPreparedStatementLoggingMethod"/>
</aop:aspect>
即使我放弃了仅提供注释方法的建议,并尝试建议该抽象Spring bean中的所有方法,它仍然没有达到断点。这让我怀疑它不能使用抽象bean,因为我有其他类似定义的切入点可以工作。
<aop:pointcut id="inBaseSqlDaoMethod" expression="within(com.blah.dao.BaseSqlDao)"/>
<aop:aspect id="preparedStatementLoggingAspect" ref="methodProfileAspect">
<aop:around method="doPreparedStatementLogging" pointcut-ref="inBaseSqlDaoMethod"/>
</aop:aspect>
我无法在日志中找到任何错误。在Spring或AspectJ中是否有任何日志记录类别我应该切换到调试级别以进一步调查这一点?