In EJB 2.1 and earlier we used service locators to cache objects looked up on JNDI. This improved performance as we didnt need to look up the same beans again. In EJB 3.0, beans are injected by the AS and look up is hidden from us and is performed by JBoss. So, does JBoss perform any caching similar to service locators to give us the performance boost. Or are we loosing on this performance benefit when using EJB injections in EJB 3.0?