Estou estudando Spring pelo livro Spring in Action e logo no primeiro exemplo onde ele demonstra AOP, não consegui fazer o programa executar o aspecto.
A configuração está assim:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="quest" class="com.springinaction.chapter01.knight.HolyGrailQuest" />
<bean id="knight"
class="com.springinaction.chapter01.knight.KnightOfTheRoundTable">
<constructor-arg value="Bedivere" />
<property name="quest" ref="quest" />
</bean>
<bean id="minstrel" class="com.springinaction.chapter01.knight.Minstrel" />
<aop:config>
<aop:aspect ref="minstrel">
<aop:pointcut id="questPointcut"
expression="execution(* *.embarkOnQuest(..)) and target(bean)" />
<aop:before method="singBefore" pointcut-ref="questPointcut"
arg-names="bean" />
<aop:after-returning method="singAfter"
pointcut-ref="questPointcut" arg-names="bean" />
</aop:aspect>
</aop:config>
</beans>
Tem um bean configurado pra ser o target e o nome do método está certo. A aplicação executa sem erros mas ele não executa o método declarado na expression…
Alguém tem uma luz?