Tidy up generics a bit
Move @Autowired into @Configuration

I prefer to keep the actual components free of autowiring, so they
are easier to navigate in an IDE (i.e. you can see how they are
constructed)
Tweaks