To me it seems like a case of excessive abstraction rather than a naming problem. Much like in C where it can be tempting to go over board with optimization, in OOP languages, swap that with abstraction. Let's look at that name: AbstractSingletonProxyFactoryBean, what is that thing and why do I need it.