title: @Before @PostConstruct Spring AOP ineterception
body: <p>I'm trying to write an aspect that can intercept PostConstruct methods. I've looked at related questions on SO and others, and following them, this is what I have so far:</p>
  
  <h3>The Spring configuration</h3>
  
  <pre><code>@Configuration
  @EnableAspectJAutoProxy
  @EnableLoadTimeWeaving
  @...//other config annotations
  public class WebConfiguration {
  
      @Bean
      public CommonAnnotationBeanPostProcessor commonAnnotationBeanPostProcessor() {
          return new CommonAnnotationBeanPostProcessor();
      }
      ... // etc
  
  }
  </code></pre>
  
  <h3>The annotation:</h3>
  
  <pre><code>@Retention(RetentionPolicy.RUNTIME)
  public @interface Secured {
      Permission[] permissions() default {};
  }
  </code></pre>
  
  <h3>The bean</h3>
  
  <pre><code>@Component
  @Scope("request")
  public class SomeWebBean {
  
      @Secured(permissions = Permission.SOME_PERMISSION)
      @PostConstruct
      public void secure() {
          ... // some stuff
      }
  
  }
  </code></pre>
  
  <h3>The aspect</h3>
  
  <pre><code>@Component
  @Aspect
  public class SecuredAspect {
  
      @Before("@annotation(secured)")
      public void doAccessCheck(Secured secured) {
          ... // actually do the access check
      }
  
  }
  </code></pre>
  
  <p>If I call <code>someWebBean.secure()</code> from a page, then the aspect is invoked. However, it is not invoked on bean creation.</p>