2015-03-17 3 views
0

Я пытаюсь создать простой аспект. Вот мой простой пружинный бобAspect не работает с пружиной bean

public class SimpleService { 
    public void sayHello(){ 
     System.out.println("hi"); 
    } 

} 

Вот мой аспект класс

@Aspect 
public class SimpleAspect { 
    @Before("execution(void sayHello())") 
    public void entering(){ 
     System.out.println("entering.."); 
    } 
} 

Вот мой файл конфигурации

<?xml version="1.0" encoding="UTF-8"?> 
<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/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 
     <aop:aspectj-autoproxy/> 
<bean id="service" class="com.schatt.service.SimpleService"></bean> 

Мое понимание было то, что, когда я пытаюсь вызвать SimpleService.sayHello(), будет вызван предыдущий аспект, и после этого sayHello() будет вызван. Но аспект не срабатывает. Не понимаю, чего я здесь не вижу.

ответ

0

Если ваш класс не реализует интерфейс, вы должны будете использовать <aop:aspectj-autoproxy proxy-target-class="true"/>

1

аспект должен быть создан весной (в Одер, чтобы применить проксирование).

<bean id="simpleAspect" class="package-name.SimpleAspect"></bean> 
0

В дополнение к тому, что Маниш и fateddy сказали, пожалуйста, обратите внимание, что SimpleService потребности быть Spring @Component для того, чтобы заставить его работать с Spring AOP.

Смежные вопросы