Spring escopo de um controlador

Olá, Pessoal.

Estou criando um projeto com JPA stand alone, usando spring somente para a parte mvc. Porém, estou tendo problema com o pool de conexões com o banco de dados: a cada requisição HTTP o pool é iniciado novamente e conexoes são perdidas.


18/01/2011 10:58:49 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
INFO: Initializing c3p0 pool... 
Hibernate: 
    select
     ..............
18/01/2011 10:58:52 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager
INFO: Initializing c3p0 pool... 
Hibernate: 
    select
        ................

Me parace que o meus controladores estão com escopo de requisição. Mas o default não é singleton? Mas enfim, ja tentei colocar em cada método: @Scope(BeanDefinition.SCOPE_SINGLETON) e nada.

Parece que o Persistence.createEntityManagerFactory(“Teste”); esta sendo chamado várias vezes!

Segue o código da minha estrutura de controladores:


public abstract class BaseController <T extends Serializable> {
	
	private static final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("Teste");
		
	protected EntityManager createEntityManager() {
		return entityManagerFactory.createEntityManager();
	}
	
	public abstract Class <T> getControlledClass();
	
	@RequestMapping(method = RequestMethod.GET)
	@Scope(BeanDefinition.SCOPE_SINGLETON)
	public @ResponseBody ExtDataPacket retrieveAll() throws Exception {
		EntityManager entityManager = createEntityManager();
		
		try {			
			RepositoryIF<String, T> repositoryL = new GenericJPADAO<String, T>(entityManager, getControlledClass());			
			return ExtDataPacketFac.createSuccessPacket(repositoryL.retrieveAll());
		}catch (Exception e) {
			throw e;
		}finally {
			entityManager.close();
		}
	}

_____________________________________

@Controller
@RequestMapping(value = "/usuarios")
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class UsuarioController extends BaseController <Usuario> {

	public Class<Usuario> getControlledClass() {		
		return Usuario.class;
	}
}

Conto com a ajuda de vocês.