LoggingAspectConfigurationクラスを追加する前に簡単なアプリケーションが正常に動作しています。次のようにソースコードは、(取り除かimport文)@Aspectの@Autowired依存関係注入はLoggerContextの場合nullです。
これは、これは、アプリケーション・ルート・クラスが存在componentscanさ
package com.rsa.tools.springmvc.configuration;
public class ApplicationInitialization extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { ApplicationRootClassConfiguration.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { ApplicationWebConfiguration.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
トップクラスである
package com.rsa.tools.springmvc.configuration.backend;
@Configuration
@EnableAspectJAutoProxy
@ComponentScan(basePackages={"com.rsa.tools.springmvc.configuration.general", "com.rsa.tools.springmvc.configuration.backend", "com.rsa.tools.springmvc.dao", "com.rsa.tools.springmvc.service"})
public class ApplicationRootClassConfiguration {
}
Logback構成
package com.rsa.tools.springmvc.configuration.general;
@Configuration
public class ApplicationLogbackConfiguration {
@Bean
public LoggerContext getLoggerContext() { ... }
}
ここまでうまく動作します。
私は以下のクラスを追加した後:loggerCtxの依存性の注入のために動作しませんでしたので、私は、nullポインタ例外を見始め
package com.rsa.tools.springmvc.configuration.general;
@Aspect
@Component
public class LoggingAspectConfiguration {
@Autowired
LoggerContext loggerCtx;
@Pointcut("execution(* *.*(..))")
protected void loggingOperation() {}
@Before("loggingOperation()")
@Order(1)
public void logJoinPoint(JoinPoint joinPoint) {
Logger logger = loggerCtx.getLogger(this.getClass());
logger.trace("Join point kind : " + joinPoint.getKind());
logger.info("Signature declaring type : "+ joinPoint.getSignature().getDeclaringTypeName());
logger.info("Signature name : " + joinPoint.getSignature().getName());
logger.info("Arguments : " + Arrays.toString(joinPoint.getArgs()));
logger.info("Target class : "+ joinPoint.getTarget().getClass().getName());
logger.info("This class : " + joinPoint.getThis().getClass().getName());
}
...
}
を。この問題に対処するには?
'@ Order'は春からの注釈ですか?なぜあなたは 'logJoinPoint'メソッドでそれを持っていますか? –
私はそれを削除しましたが、それと同じ問題です。 –