Spring Autowiring class vs. interface?

Normally, both will work, you can autowire interfaces or classes.

There’s probably an autoproxy generator somewhere in your context, which is wrapping your boo bean in a generated proxy object. This proxy object will implement TheInterface, but will not be a TheClass. When using autoproxies, you need to program to the interface, not the implementation.

The likely candidate is transactional proxies – are you using Spring transactions, using AspectJ or @Transactional?

Leave a Comment