1

我声明了一个只有在“测试”配置文件处于活动状态时才应该运行的方面。Spring 似乎不考虑@Profile 注释,并在激活或不激活“测试”配置文件的情况下运行该方面。

下面是代码块:

import org.springframework.context.annotation.Profile;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
@Configurable
@Profile("test")
public class MyAspect {

  @Autowired
  private MyService service;

  @Pointcut("execution(private * method(..)) && args(table,..)")
  public void myPointcut(StatsParameterTable table) {}

  @AfterReturning(pointcut = "myPointcut(table)")
  public void intercept(StatsParameterTable table) {
    myService.doStuff(table);
  }
}

春季版本:4.1.7.RELEASE
AspectJ 版本:1.8.2

4

1 回答 1

-1

要使@Profile 工作,您的类应该是@Component 或@Configuration(不可配置)。尝试使用@Component 注释类。

于 2015-07-07T16:07:26.870 回答