为什么spring aop找不到引用的切入点

时间:2016-02-19 08:16:21

标签: spring aop

我配置了所需的但是为什么错误发生了。我检查了几个文档,但没有适当的解决方案。我正在使用基于anop和autoproxy的注释。下面是一些代码段。

商务舱

Dim ITEM2b As Double= DataGridView1.Item(2, 0).Value '<--This case senario the value came to 257.85

Dim ITEM15 As Double

aop class

package com.jlc.spring;

public class Business1 {

    public void myBusiness() {
        System.out.println("Business1-myBusiness");

    }
    public void doMyBusiness() {
        System.out.println("Business1-doMyBusiness");

    }

}

配置文件

package com.jlc.spring.service;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class LogService {

    /*
    @Pointcut("execution(* com.jlc.spring.Business1.*Business(..))")
    public void m1(){}

    @Pointcut("execution(* com.jlc.spring.Business1.my*(..))")
    public void m2(){}
    @Pointcut("execution(* com.jlc.spring.Business1.do*(..))")
    public void m3(){}
    */
    @Pointcut("execution(* *.*Business1.my.(..))")
    private void m2(){}
    /*
    @Before("m1()")

    public void log1(){
        System.out.println("LogService-log1");
    }
    @Before("m2()")
    public void log2(){
        System.out.println("LogService-log2");
    }
    @Before("m3()")
    public void log3(){
        System.out.println("LogService-log3");
    }
    */
    @Before("m2()")
    public void log2(){
        System.out.println("LogService-log2");
    }
}

和错误:

<?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:context="http://www.springframework.org/schema/context"
            xmlns:aop="http://www.springframework.org/schema/aop"
            xmlns:tool="http://www.springframework.org/schema/tool"          
            xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/tool http://www.springframework.org/schema/tx/spring-tool-3.0.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
           <context:annotation-config/>
<aop:aspectj-autoproxy/>
<bean id="ls" class="com.jlc.spring.service.LogService"/>

<bean id="b1" class="com.jlc.spring.Business1"/>

</beans>

1 个答案:

答案 0 :(得分:0)

尝试以这种方式修复 xml配置文件

<?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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context  
                           http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/aop 
                           http://www.springframework.org/schema/aop/spring-aop.xsd">
    <context:annotation-config/>
    <aop:aspectj-autoproxy/>

    <bean id="ls" class="com.jlc.spring.service.LogService"/>

    <bean id="b1" class="com.jlc.spring.Business1"/>

</beans>

你也有切入点语法错误,试试这个:

@Pointcut("execution(* *.*Business1.my*(..))")
private void m2(){}

查看切入点语法here的示例。

确保您的 pom.xml

中包含这些依赖项
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>

My Spring版本 4.2.4.RELEASE