Fala João, tudo bem ?
É isso aí mesmo. Você deve ter percebido que quando queremos usar o EntityManager dentro do Dao, pedimos a injeção dessa dependência:
@Repository
public class ProdutoDAO {
@PersistenceContext
private EntityManager manager;
public void gravar(Produto produto) {
manager.persist(produto);
}
}
O que ocorre é que um projeto específico (Spring ORM => https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-reference/data-access.html#orm) está sendo usado para ajudar na integração com a JPA. Por isso o Spring já oferece um LocalContainerEntityManagerFactory
(fábrica de entity managers do próprio spring orm). Com isso o Spring também gerencia pra nós o ciclo de vida desses objetos, sabendo a hora de construir, injetar como dependencia, fechar, destruir, etc.
=)
Espero ter ajudado. Abraço!