Controle Transacioanl Via Spring

550 palavras 3 páginas
Neste artigo irei exemplificar como é feita a utilização do Spring para efetuar o controle de transações JPA utilizando o Hibernate como provider, nesse exemplo fica claro como se torna transparente as transações para o desenvolvedor não sendo mais necessário que o mesmo inicie e finalize a cada vez que se faça necessário a sua utilização.
Antes de começar postarei abaixo o arquivo persistence.xml do JPA para que fique claro a configuração que será realizada.

Onde temos o nome da persistence-unit o tipo de transação e no datasource com as configurações de banco (DataSource esse configurado no servidor JBOSS).
Vamos iniciar então a configuração do Spring no escopo proposto.
O primeiro passo é criarmos nosso arquivo de configuração do Spring o Application-context.xml que deverá conter o seguinte cabeçalho:

Começaremos na parte de integração com o JPA, o Springframework disponibiliza um Bean que devemos cadastrar no arquivo XML. Ele representa a EntityManagerFactory que agora será gerenciada pelo Spring. Ou seja, toda inicialização da factory fica por conta do Spring.

Repare que o Bean(entityManagerFactory) define Hibernate como implementação do JPA e recebe a persistenceUnit “artigoPU” que já definimos acima no arquivo de persistence.xml. Como a nossa DataSource(configurada no persistence.xml) já sabe os dados do driver, e do banco de dados, tudo ficará mais simples.
Como toda classe DAO deve conter métodos que façam, chamadas ao banco de dados através de uma transação aberta pelo entityManager , devemos injetar através de setters o entityManager na classe DAO através da annotation @PersistenceContext como no exemplo abaixo:

Acima efetuamos a utilização das annotations @Repository e @Service , o que elas significam?
Sua classe DAO deve possuir a annotation @Repository para que o Spring a identifique como integrante da camada de persistência e torne possivel efetuar a injeção de dependência através da annotation @AutoWired em uma classe BO por

Relacionados