title: Spring AOP works without @EnableAspectJAutoProxy?
body: <p>I am learning Spring (currently its AOP framework). Even though all sources I've read say that to enable AOP one needs to use <code>@EnableAspectJAutoProxy</code> annotation (or its XML counterpart) my code seems to work with annotation commented out. Is that because I use Lombok or Spring Boot (v. 1.5.9.RELEASE, dependent on Spring v. 4.3.13.RELEASE)?</p>
  
  <p>Minimal example follows:</p>
  
  <p><strong>build.gradle</strong></p>
  
  <pre><code>buildscript {
      ext {
          springBootVersion = '1.5.9.RELEASE'
      }
      repositories {
          mavenCentral()
      }
      dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
      }
  }
  
  apply plugin: 'java'
  apply plugin: 'org.springframework.boot'
  
  group = 'lukeg'
  version = '0.0.1-SNAPSHOT'
  sourceCompatibility = 1.8
  
  repositories {
      mavenCentral()
  }
  
  
  dependencies {
      compile('org.springframework.boot:spring-boot-starter')
      compileOnly('org.projectlombok:lombok')
      compile("org.aspectj:aspectjweaver:1.8.11")
      testCompile('org.springframework.boot:spring-boot-starter-test')
  }
  </code></pre>
  
  <p><strong>ApplicationConfiguration.java</strong> (note the AOP annotation is commented out)</p>
  
  <pre><code>package lukeg;
  
  import org.springframework.context.annotation.*;
  
  @Configuration
  @ComponentScan
  //@EnableAspectJAutoProxy
  public class ApplicationConfiguration {
      @Bean
      TestComponent testComponent() {
          return new TestComponent();
      }
  }
  </code></pre>
  
  <p><strong>LearnApplication.java</strong></p>
  
  <pre><code>package lukeg;
  
  import org.springframework.boot.CommandLineRunner;
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  import org.springframework.context.ApplicationContext;
  import org.springframework.context.annotation.AnnotationConfigApplicationContext;
  
  @SpringBootApplication
  public class LearnApplication implements CommandLineRunner {
  
      public static void main(String[] args) {
          SpringApplication.run(LearnApplication.class, args);
      }
  
      @Override
      public void run(String... args) throws Exception {
          ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
          TestComponent testComponent = context.getBean(TestComponent.class);
          System.out.println(""+testComponent);
      }
  }
  </code></pre>
  
  <p><strong>LoggerHogger.java</strong></p>
  
  <pre><code>package lukeg;
  
  import org.aspectj.lang.annotation.After;
  import org.aspectj.lang.annotation.Aspect;
  import org.aspectj.lang.annotation.Before;
  import org.aspectj.lang.annotation.Pointcut;
  import org.springframework.stereotype.Component;
  
  @Component
  @Aspect
  public class LoggerHogger {
  
      @Pointcut("execution(* lukeg*.*.toString(..))")
      public void logToString() {}
  
      @Before("logToString()")
      public void beforeToString () {
          System.out.println("Before toString");
      }
  }
  </code></pre>
  
  <p><strong>TestComponent.java</strong></p>
  
  <pre><code>package lukeg;
  
  import lombok.Data;
  
  
  @Data
  public class TestComponent {
  }
  </code></pre>