方面不适用于 spring 光束
Aspect not working witha spring bean
我正在尝试创建一个简单的方面。
这是我的简单 spring bean
public class SimpleService {
public void sayHello(){
System.out.println("hi");
}
}
这是我的方面class
@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() 将是 called.But 该方面没有得到 triggered.Can 不明白我在这里错过了什么。
如果您的 class 没有实现任何接口,您将不得不使用 <aop:aspectj-autoproxy proxy-target-class="true"/>
方面需要由 Spring 创建(以便应用代理)。
<bean id="simpleAspect" class="package-name.SimpleAspect"></bean>
除了manish和fateddy所说的之外,还请注意SimpleService
需要是Spring @Component
为了让它与 Spring AOP 一起工作。
我正在尝试创建一个简单的方面。 这是我的简单 spring bean
public class SimpleService {
public void sayHello(){
System.out.println("hi");
}
}
这是我的方面class
@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() 将是 called.But 该方面没有得到 triggered.Can 不明白我在这里错过了什么。
如果您的 class 没有实现任何接口,您将不得不使用 <aop:aspectj-autoproxy proxy-target-class="true"/>
方面需要由 Spring 创建(以便应用代理)。
<bean id="simpleAspect" class="package-name.SimpleAspect"></bean>
除了manish和fateddy所说的之外,还请注意SimpleService
需要是Spring @Component
为了让它与 Spring AOP 一起工作。