I was going through the Spring 3.0 reference documentation and i found the following line:
You use getBean to retrieve instances of your beans. The ApplicationContext interface has a few other methods for retrieving beans, but ideally your application code should never use them. Indeed, your application code should have no calls to the getBean method at all, and thus no dependency on Spring APIs at all.
Via dependency injection/IoC (whether or not you're using autowiring).
Whether or not you'll have to use getBean depends on the app--if you're using a framework you might never make a call to getBean yourself--but the framework might. If you're using annotations, you might never even need to do that.