diff --git a/lab-27/lab-27-webflux-r2dbc/pom.xml b/lab-27/lab-27-webflux-r2dbc/pom.xml index 4ef33eb1..6bb7a748 100644 --- a/lab-27/lab-27-webflux-r2dbc/pom.xml +++ b/lab-27/lab-27-webflux-r2dbc/pom.xml @@ -27,6 +27,7 @@ 0.1.0.M2 + com.github.jasync-sql jasync-r2dbc-mysql diff --git a/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java b/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java index 21eb76d5..a1708377 100644 --- a/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java +++ b/lab-27/lab-27-webflux-r2dbc/src/main/java/cn/iocoder/springboot/lab27/springwebflux/config/DatabaseConfiguration.java @@ -6,13 +6,15 @@ import io.r2dbc.spi.ConnectionFactory; import org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.r2dbc.connectionfactory.R2dbcTransactionManager; +import org.springframework.transaction.ReactiveTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import java.net.URI; import java.net.URISyntaxException; @Configuration -@EnableTransactionManagement +@EnableTransactionManagement // 开启事务的支持 public class DatabaseConfiguration { @Bean @@ -29,4 +31,9 @@ public class DatabaseConfiguration { return new JasyncConnectionFactory(new MySQLConnectionFactory(configuration)); } + @Bean + public ReactiveTransactionManager transactionManager(R2dbcProperties properties) throws URISyntaxException { + return new R2dbcTransactionManager(this.connectionFactory(properties)); + } + } diff --git a/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml b/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml index 85444302..11684d15 100644 --- a/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml +++ b/lab-27/lab-27-webflux-r2dbc/src/main/resources/application.yaml @@ -1,4 +1,5 @@ spring: + # R2DBC 配置,对应 R2dbcProperties 配置类 r2dbc: url: mysql://47.112.193.81:3306/lab-27-webflux-r2dbc username: lab-27-webflux-r2dbc diff --git a/lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql b/lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql new file mode 100644 index 00000000..02a9b8eb --- /dev/null +++ b/lab-27/lab-27-webflux-r2dbc/src/main/resources/sql/users.sql @@ -0,0 +1,8 @@ +CREATE TABLE `users` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号', + `username` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账号', + `password` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + PRIMARY KEY (`id`), + UNIQUE KEY `idx_username` (`username`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; diff --git a/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml b/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml index 85444302..11684d15 100644 --- a/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml +++ b/lab-27/lab-27-webflux-r2dbc/target/classes/application.yaml @@ -1,4 +1,5 @@ spring: + # R2DBC 配置,对应 R2dbcProperties 配置类 r2dbc: url: mysql://47.112.193.81:3306/lab-27-webflux-r2dbc username: lab-27-webflux-r2dbc