2015-01-20 63 views

回答

1

好過從來沒有...

我有同樣的情況:我需要配置火腿沒有任何XML配置。大部分在線示例(包括JAMon源代碼中的註釋)都宣告XML配置的靈活性,但我找不到任何基於註釋的配置示例。另外基於註解的配置不一定不那麼靈活,它們只需要在概念上分開,而不與應用程序的功能部分混淆。我覺得這樣的顧問可以是一個很好的例子:

@Component 
public class MonitoringAdvisor extends AbstractPointcutAdvisor { 

    private final StaticMethodMatcherPointcut pointcut = new StaticMethodMatcherPointcut() { 
      @Override 
      public boolean matches(Method method, Class<?> targetClass) { 
       return targetClass.isAnnotationPresent(RestController.class); 
      } 
     }; 

    @Override 
    public Pointcut getPointcut() { 
     return this.pointcut; 
    } 

    @Override 
    public Advice getAdvice() { 
     return new JamonPerformanceMonitorInterceptor(true, true); 
    } 
} 

該顧問將讓Spring/AOP知道與@RestContrller註釋的Spring bean的任何方法運行火腿監測的建議。這個顧問應該像休息控制器一樣被配置/添加到相同的Spring上下文中。

請注意,在我的情況下,我特別想監視我的休息控制器。可以根據自己的需要調整顧問。 (在我的代碼中,我使用了提供的顧問程序的更高級/可配置版本)