Arquitetura Hibernate EntityManager - JPA - Spring?

Galera, bom dia !

Estou migrando do iBatis para Hibernate EntityManager, só que estou com uma dúvida, sendo :

Tenho a classe Cliente (com as devidas annotations);
Camada DAO (apenas configurada para acesso ao banco, recebendo uma conexao no seu construtor);
Camada Service (recebe o DAO e a conexao, e nessa camada realizo as transações);

Interceptador (essa camada abro a conexao com o banco de dados, após o processamento do request, fecho a conexao com o banco)

Minha dúvida é a seguinte, como crio e disponibilizo a sessao no context da aplicação ? o Spring pode me ajudar a fazer isso ?

Uma boa prática é utilizar apenas uma conexão para uma aplicação inteira, ou seja, apenas um EntityManagerFactory.

O EntityManager sim, ele deve ser aberto antes e fecha-lo após as operações com o banco.

O Spring pode te ajudar na tarefa de “injetar” os objetos para você, sja o EntityManagerFactory, EntityManager, DAO, Service, ou qualquer outro objeto.

Outro detalhe que esqueci de mencionar. O Spring (seu modulo de transação), pode te ajudar a fazer os controles de transações, dessa forma você poderia excluir essa sua camada de service e deixar tudo na camada de DAO