title: Spring @Autowired not working with final method on abstract super class
body: <p>I have a abstract super class with autowired fields and a final method. Additionally there is a concrete sub class with a method which calls the final method on the super class.</p>
  <p>Abstract super class:</p>
  <pre><code>public abstract class AbstractSuper {
      @Autowired
      protected AuthenticationService authenticationService;
  
      @Autowired
      protected JobRepository jobRepository;
  
      public final void startOnSuper() {
          test();
      }
  
      private void test() {
          assert authenticationService != null;
          assert jobRepository != null;
      }
  }
  </code></pre>
  <p>Concrete implementation:</p>
  <pre><code>@Component
  @RequiredArgsConstructor
  public class ConcreteImpl extends AbstractSuper {
      private final PersonService personService;
  
      public void startOnImpl() {
          super.startOnSuper();
      }
  }
  </code></pre>
  <p>JUnit:</p>
  <pre><code>@Autowired
  private ConcreteImpl concrete;
  
  @Test
  public void startOnImpl() {
      concrete.startOnImpl();
  }
  
  @Test
  public void startOnSuper() {
      concrete.startOnSuper();
  }
  </code></pre>
  <p>Why does the startOnImpl test work and the startOnSuper test fail? Why does it matter whether I call the method from the sub class or from outside the class? Shouldn't the state of the object be the same?</p>