springBoot 新增定時器和事務
定時器使用
一、啟動類上添加註解
二、在配置檔案中加上規則( cron的表示式自行百度)
三、在service層中新增任務使用註解:
@Scheduled(cron = "${krystal.quarz.order.cron}")
事務使用:
一、pom.xml中新增依賴
<dependencies>
<dependency> <!--新增Web依賴 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency> <!--新增Mybatis依賴 -->
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency><!--新增MySQL驅動依賴 -->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope> </dependency>
<dependency><!--新增Test依賴 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二、在啟動類上添加註解:
@EnableTransactionManagement //如果mybatis中service實現類中加入事務註解,需要此處新增該註解
三、實現:在service中使用
注意點:
1.( @Scheduled 和@Transactional不能同時存在一個類裡面,會報錯,我遇到的,不知道為啥)
2.Spring的預設的事務規則是遇到執行異常(RuntimeException)和程式錯誤(Error)才會回滾。如果想針對非檢測異常進行事務回滾,可以在@Transactional 註解裡使用,@Transactional(rollbackFor=Exception.class) 屬性明確指定異常。()