Why don't I experience any exception when I lookup bean wrapped by JDK dynamic proxy by class(instead of interface)?
Lets consider following bean: @Service @Scope(value = "prototype", proxyMode = ScopedProxyMode.INTERFACES) public class MyBeanB implements MyBeanBInterface { private static final AtomicLong COUNTER = new AtomicLong(0); private Long index; public MyBeanB() { index = COUNTER.getAndIncrement(); System.out.println("constructor invocation:" + index); } @Transactional @Override public long getCounter() { return index; } } and consider 2 different usages: USAGE 1: @Service public class MyBeanA { @Autowired private MyBeanB myBeanB; .... } At this case application can't be started and prints: *********