title: Spring Autowiring, I only have one implementation should I autowire? And if so, should I autowire the implementation?
body: <p>This is more of a best practice type question.</p>
  
  <p>I've heard dozens of times that:</p>
  
  <p>a) when autowiring in Spring it is best practice to autowire the interface 'not' the implementation.</p>
  
  <p>and..</p>
  
  <p>b) I have also heard that if you only have 'one' implementation, then you should not really be using an interface.</p>
  
  <p>Here is my dilemma, I have an interface 'MyService' and one implementation <code>MyServiceImpl</code>. I use <code>@Autowiredz MyService in</code>MyController` and in 'MyServiceTest'.</p>
  
  <p>I have no need for another implementation. </p>
  
  <p>Clearly this violates rule b), but autowiring the implementation would violate rule a).</p>
  
  <p>So my question is .... what should I do? Should I just opt not to use Spring at all in this case and just instantiate 'MyService' using the new keyword?</p>