私はSpring AOPを学ぼうとしています。私はIDEAで簡単なスプリングブートプロジェクトを作成しました。Spring AOPブロックRestController
Service.java
package com.example.demo.service;
//imports..
public interface Service {
public DataEntity getData();
}
ServiceImpl.java
package com.example.demo.service;
//imports..
@RestController("service")
public class ServiceImpl implements Service {
@RequestMapping(value="/test", method= RequestMethod.GET)
public DataEntity getData() {
DataEntity data = new DataEntity();
data.setData("SomeString");
return data;
}
}
ServiceCallingAspect.java
package com.example.demo.aspects;
//imports..
@Aspect
@EnableAspectJAutoProxy
@Component
public class ServiceCallingAspect {
private Log log = LogFactory.getLog(ServiceCallingAspect.class);
@AfterReturning("execution(public * com.example.demo.service.*.*(..))")
public void logBeforeRestCall(JoinPoint pjp) throws Throwable {
log.info(" POST REST call " + pjp);
}
}
DemoApplication.java
package com.example.demo;
//..
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
私はhttp://localhost:8080/test
に私のRESTサービスを呼び出すしようとするので、私はそのような何かを得ます。
{
"timestamp": 1514109432038,
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/test"
}
私は私の側面(ちょうどServiceCallingAspect.java
内のすべての注釈をコメント)サービスが完璧に動作無効にします。私が間違っている場所を私に見せてもらえますか?
URLにアクセスしようとすると、アスペクトが表示されますが、コントローラーがレックしますか?あなたはこれをデバッグしましたか? – pvpkiran
@pvpkiranいいえ、デバッグモードでコントローラに到達できません。 –