Ищу пример реализации программного управления транзакциями в Spring Boot и Spring Data JPA. Везде только для spring framework. И в документации по Spring Boot ничего по этому поводу нормального нет.
И еще вопрос, нужно ли настраивать бины в spring boot: Bean(name = "dataSource")
, @Bean(name = "sessionFactory")
, @Bean(name = "transactionManager")
и другие как это делается в Spring Framework, или же в Spring Boot достаточно аннотации @EnableTransactionManagement
.
Да, бины надо настраивать, иначе они будут сконфигурированы по своему. Но, для того, чтобы конфигурация началась надо ставить @EnableTransactionManagement
и добавить в pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${spring-boot-starter-data-jpa.version}</version>
</dependency>
Пример можно взять здесь. В примере используется аннотация @Transactional
для демарковки транзакций.
Если есть необходимость использовать транзакции программатично, то нужно читать тут.
Если вы программно хотите управлять транзакциями, все что нужно сделать:
@SpringBootApplication
@EnableJpaRepositories(enableDefaultTransactions = false)
public class SpringBootApp {
public static void main(String[] args) {
SpringApplication.run(SpringBootApp.class, args);
}
}
Далее просто навешивайте аннотацию @Transactional на методы ваших сервисов. (Никакого отличия от спринга без бута).
Если интересно как спринг бут конфигурирует transaction manager, hibernate и containerFBean, то можете посмотреть в этом классе.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Коллеги, добрый день! Вот такой стек исключения выдается при запуске собранного мавеном джарника моего приложения:
Есть список имен и дней рожденияНужно получить список имен, у которых в ближайшие две недели будет день рождения, используя (желательно) java