Frontier: Com um estudo mais aprofundado do gerenciamento de transações de primavera, este artigo não fará exemplos, mas especificará classes e arquivos de configuração específicos para explicação.
Conteúdo deste artigo:
1. Entenda o que é uma transação declarativa?
2. Quais são os gerenciamento de transações declarativas?
3. Qual é a diferença entre esses tipos de gerenciamento de transações?
1. O que é uma transação declarativa?
O gerenciamento de transações declarativas é uma das maneiras de gerenciar transações de programas fornecidas pela primavera. As transações declarativas da Spring usam o método declarativo para lidar com transações e usar o processamento declarativo de transações nos arquivos de configuração da mola para substituir o processamento de transações baseado em código. A vantagem disso é que o gerenciamento de transações não invade os componentes de desenvolvimento. Especificamente, o objeto de lógica de negócios não perceberá que está no gerenciamento de transações. De fato, o mesmo deve ser verdadeiro, porque o gerenciamento de transações é um serviço no nível do sistema, não parte da lógica de negócios. Se você deseja alterar o gerenciamento de transações, só precisará modificar a configuração no arquivo de configuração definido. Quando nenhum gerenciamento de transações for necessário, basta modificá -lo no arquivo de configuração e remover o serviço de gerenciamento de transações sem alterar o código e recompilá -lo, o que é extremamente conveniente para manter.
2. Método de gerenciamento de transações declarativo.
Primeiro, vamos dar uma olhada no gerenciamento original de transações antes de podermos falar sobre o método de gerenciamento de transações declarativas.
Como pode ser visto na figura acima, primeiro precisamos criar uma nova sessão. Dessa forma, toda vez que chamamos esse método, recriaremos uma nova sessão e faremos a mesma coisa repetidamente, o que não está em conformidade com a nossa ideia de design de engenharia de software. Em seguida, usamos o gerenciamento de transações declarativas para simplificar e ajustar o código.
1. Use o gerenciamento de transações declarativas de Springraop.
1.1. Precisamos importar vários pacotes de AOP:
1.2. Em seguida, execute a configuração da transação no arquivo de configuração Application.xml:
1.3. Modifique o método de consultar todos os dados:
Após a explicação acima, podemos ver a modificação do método ShowAllNews (). Primeiro, alteramos o método OpenSession () original para getCurrentSession () (Nota: a captura de tela tem comentários para ilustrar suas diferenças, para não repeti -las). Não há necessidade de criar e cometer transações manualmente. Nossa SpringAop gerenciará automaticamente as transações e fechará automaticamente a sessão.
2. Use o método de anotação @Transaction.
2.1. Primeiro, precisamos executar a configuração da transação no arquivo de configuração Application.xml (notifique o contêiner de mola para lidar com o processamento do feijão da anotação @Transactional):
2.2. Depois, não há necessidade de fazer operações ou modificações no NewsdaoImpl:
2.3. Adicione anotações ao NewsServiceImpl.
Aqui, podemos adicionar a anotação @Transactional à classe (o que significa que todos os métodos são adicionados ao gerenciamento de transações) ou adicionar anotação @transacional ao método específico. Se for um método que não requer modificar os dados, adicione um atributo.
Por exemplo: Método para consultar todos os dados @transaction (readOnly = true)
3. A diferença entre o gerenciamento de transações declarativas configurado usando o SpringAop e a anotação @Transactional:
1) O gerenciamento de transações declarativas de configuração do SpringAOP possui baixo acoplamento, baixa legibilidade, expressão detalhada e alta flexibilidade.
2) A anotação @Transaction tem alta legibilidade, e o conteúdo é disperso e não é propício ao gerenciamento e manutenção unificados e possui alto acoplamento.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.