title: Spring @Async dual behaviour
body: <p>I have the following class:</p>
  
  <pre><code>@Component
  public class Foo {
  
    @Async
    public void test1() {
       ...
    }
  
    public void test2() {
      test1();
    }
  }
  </code></pre>
  
  <p>And another class that has a Foo instance:</p>
  
  <pre><code>@Component
  public class Bar {
  
    @Autowired
    public Foo foo;
  
    public void testMethod() {
      foo.test2();
      foo.test1();
    }
  }
  </code></pre>
  
  <p>My experiences are the following: If i call foo.test1() then it runs asynchronously, but if i call foo.test2() - which also calls test1() - then the test1() doesn't run asynchronously. Can anyone explain this behaviour?</p>