title: Where to place Spring @Async in a stack of methods calls
body: <p>I am using Spring Boot 1.5.x, and in details, I am using the <code>@Async</code> annotation. My problem is that I have the following method in a repository.</p>
  
  <pre><code>@Repository
  class Repository {
      @Async
      CompletableFuture&lt;String&gt; findSomething() {
          /* Some code that returns something */
      }
  }
  </code></pre>
  
  <p>And then, I have the following method in a service, which calls the above repository.</p>
  
  <pre><code>@Service
  class Service {
      private Repository repository;
      // ...
      @Async
      CompletableFuture&lt;String&gt; findSomething() {
          return repository.findSomething()
      }
  }
  </code></pre>
  
  <p>My question is: should I place the <code>@Async</code> annotation <strong>also</strong> in the <code>service.findSomething()</code> method? Or should I place the annotation <strong>only</strong> in the service method? </p>
  
  <p>I mean, Spring should schedule the execution of a method marked with <code>@Async</code> annotation in a dedicated thread. Is it correct?</p>
  
  <p>Thanks in advance.</p>