The problem seems to be the configuration scanning process of Spring Boot, so not the Spring Framework itself.
It evaluates the conditions from the various autoconfiguration classes and ends up loading JobProcessImpl
, because is annotated with @Component
, before the LoadTimeWeaver
gets enabled.
The way I found to make it work is to remove the @Component
annotation from the class and create the bean by hand in ApplicationConfig
:
@Bean
public JobProcess jobProcess() {
return new JobProcessImpl();
}
2019-09-20 12:10:26.985 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] register aspect com.spring.aspect.dynamicflow.aspect.TaskAspects
2019-09-20 12:10:27.155 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] register aspect com.spring.aspect.dynamicflow.activity.AnnotationTask
2019-09-20 12:10:27.166 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] register aspect com.spring.aspect.dynamicflow.activity.ReviewTask
2019-09-20 12:10:27.257 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] Join point 'method-execution(java.lang.Object com.spring.aspect.dynamicflow.process.JobProcessImpl.process(com.spring.aspect.dynamicflow.entity.JobContext))' in Type 'com.spring.aspect.dynamicflow.process.JobProcessImpl' (JobProcessImpl.java:16) advised by around advice from 'com.spring.aspect.dynamicflow.activity.ReviewTask' (Task.java)
2019-09-20 12:10:27.263 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] Join point 'method-execution(java.lang.Object com.spring.aspect.dynamicflow.process.JobProcessImpl.process(com.spring.aspect.dynamicflow.entity.JobContext))' in Type 'com.spring.aspect.dynamicflow.process.JobProcessImpl' (JobProcessImpl.java:16) advised by around advice from 'com.spring.aspect.dynamicflow.activity.AnnotationTask' (Task.java)
2019-09-20 12:10:27.378 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] Join point 'method-execution(java.lang.Object com.spring.aspect.dynamicflow.activity.AnnotationTask.task(org.aspectj.lang.ProceedingJoinPoint, com.spring.aspect.dynamicflow.entity.JobContext))' in Type 'com.spring.aspect.dynamicflow.activity.AnnotationTask' (AnnotationTask.java:16) advised by around advice from 'com.spring.aspect.dynamicflow.aspect.TaskAspects' (TaskAspects.java)
2019-09-20 12:10:27.390 INFO 1 --- [ main] AspectJ Weaver : [AspectJ] Join point 'method-execution(java.lang.Object com.spring.aspect.dynamicflow.activity.ReviewTask.task(org.aspectj.lang.ProceedingJoinPoint, com.spring.aspect.dynamicflow.entity.JobContext))' in Type 'com.spring.aspect.dynamicflow.activity.ReviewTask' (ReviewTask.java:16) advised by around advice from 'com.spring.aspect.dynamicflow.aspect.TaskAspects' (TaskAspects.java)
2019-09-20 12:10:27.412 INFO 1 --- [ main] c.s.a.d.process.JobProcessImpl : JobProcessImpl class was loaded
2019-09-20 12:10:27.500 WARN 1 --- [ main] AspectJ Weaver : [AspectJ] javax.* types are not being woven because the weaver option '-Xset:weaveJavaxPackages=true' has not been specified
2019-09-20 12:10:27.871 INFO 1 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-09-20 12:10:28.368 INFO 1 --- [ main] c.spring.aspect.dynamicflow.Application : jobProcess = com.spring.aspect.dynamicflow.process.JobProcessImpl@4627a09d
2019-09-20 12:10:28.379 INFO 1 --- [ main] c.s.a.dynamicflow.aspect.TaskAspects : Handling the task aspects.
2019-09-20 12:10:28.382 INFO 1 --- [ main] c.s.a.dynamicflow.aspect.TaskAspects : execution(Object com.spring.aspect.dynamicflow.activity.AnnotationTask.task(ProceedingJoinPoint, JobContext))
2019-09-20 12:10:28.382 INFO 1 --- [ main] c.s.a.d.activity.AnnotationTask : AnnotationTask's task
2019-09-20 12:10:28.382 INFO 1 --- [ main] c.s.a.d.activity.AnnotationTask : Setting that the annotation is done.
2019-09-20 12:10:28.395 INFO 1 --- [ main] c.s.a.dynamicflow.aspect.TaskAspects : Handling the task aspects.
2019-09-20 12:10:28.395 INFO 1 --- [ main] c.s.a.dynamicflow.aspect.TaskAspects : execution(Object com.spring.aspect.dynamicflow.activity.ReviewTask.task(ProceedingJoinPoint, JobContext))
2019-09-20 12:10:28.395 INFO 1 --- [ main] c.s.a.dynamicflow.activity.ReviewTask : ReviewTask's task
2019-09-20 12:10:28.395 INFO 1 --- [ main] c.s.a.dynamicflow.activity.ReviewTask : Setting that the review is done.
2019-09-20 12:10:28.395 INFO 1 --- [ main] c.s.a.d.process.JobProcessImpl : Processing the job with jobid 11