Spring Profile不适用于Aspect注释

时间:2015-07-07 15:41:35

标签: java spring aspectj spring-annotations spring-profiles

我宣布了一个方面,只有在"测试"个人资料有效。 Spring似乎并没有考虑 @Profile annotation ,无论是否使用" test"个人资料被激活。

以下是代码块:

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

1 个答案:

答案 0 :(得分:-1)

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