From 2bf84f0c27c719d0b836dcc4f033af2b2f817df6 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Tue, 25 Jun 2024 16:17:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84r2dbc=E5=9C=BA?= =?UTF-8?q?=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ModuleDelegateService.java | 2 +- .../framework/domain/base/AuditDomain.java | 5 ++ .../framework/domain/po/Department.java | 2 + .../framework/domain/po/ExcelMapping.java | 2 + .../framework/domain/po/Permission.java | 2 + .../com/flyfish/framework/domain/po/Role.java | 2 + .../com/flyfish/framework/domain/po/User.java | 3 +- .../r2dbc/config/R2dbcDataConfig.java | 51 +++++++++++++++++-- .../config/R2dbcReferenceEntityCallback.java | 3 +- .../impl/DefaultReactiveRepositoryImpl.java | 3 -- .../framework/r2dbc/R2DbcRepositoryTest.java | 15 ++++-- .../{applicaiton.yml => application.yml} | 0 .../src/test/resources/schema-clean.sql | 1 + .../src/test/resources/schema.sql | 14 +++++ flyfish-web/pom.xml | 2 +- .../framework/beans/meta/BeanController.java | 2 + .../framework/beans/meta/BeanProperty.java | 23 ++++++--- .../framework/beans/meta/RestBean.java | 9 ++++ .../RepositoryRegistrarComposite.java | 16 +++++- pom.xml | 2 +- 20 files changed, 135 insertions(+), 24 deletions(-) rename flyfish-data/flyfish-data-r2dbc/src/test/resources/{applicaiton.yml => application.yml} (100%) create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/resources/schema-clean.sql create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/resources/schema.sql diff --git a/flyfish-approval/src/main/java/com/flyfish/framework/approval/service/ModuleDelegateService.java b/flyfish-approval/src/main/java/com/flyfish/framework/approval/service/ModuleDelegateService.java index cc45e5c..8d19639 100644 --- a/flyfish-approval/src/main/java/com/flyfish/framework/approval/service/ModuleDelegateService.java +++ b/flyfish-approval/src/main/java/com/flyfish/framework/approval/service/ModuleDelegateService.java @@ -40,7 +40,7 @@ public class ModuleDelegateService { private Map> approvalServices; private String getModuleName(BaseReactiveService service) { - return ReflectionUtils.getGenericType(service.getClass()).map(Class::getSimpleName) + return ReflectionUtils.getGenericType(service.getClass()).map(this::moduleName) .orElseThrow(() -> new InvalidBusinessException("系统模块名称抽取失败!")); } diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java index a5acc29..a15fb29 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java @@ -7,6 +7,7 @@ import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.relational.core.mapping.Column; import java.time.LocalDateTime; @@ -24,6 +25,7 @@ public abstract class AuditDomain extends Domain { */ @CreatedDate @Property(value = "创建日期", readonly = true) + @Column("create_time") protected LocalDateTime createTime; /** @@ -31,6 +33,7 @@ public abstract class AuditDomain extends Domain { */ @LastModifiedDate @Property(value = "更新日期", readonly = true) + @Column("modify_time") protected LocalDateTime modifyTime; /** @@ -44,6 +47,7 @@ public abstract class AuditDomain extends Domain { * 创建人id */ @Property(readonly = true) + @Column("creator_id") protected String creatorId; /** @@ -57,5 +61,6 @@ public abstract class AuditDomain extends Domain { * 修改人id */ @Property(readonly = true) + @Column("modifier_id") protected String modifierId; } diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Department.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Department.java index 363db63..16c8b35 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Department.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Department.java @@ -3,6 +3,7 @@ package com.flyfish.framework.domain.po; import com.flyfish.framework.domain.tree.TreeDomain; import lombok.*; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; /** * 部门 @@ -10,6 +11,7 @@ import org.springframework.data.mongodb.core.mapping.Document; * @author wangyu */ @Document +@Table @Getter @Setter @NoArgsConstructor diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/ExcelMapping.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/ExcelMapping.java index 2db1f9d..b9c7426 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/ExcelMapping.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/ExcelMapping.java @@ -4,6 +4,7 @@ import com.flyfish.framework.domain.base.AuditDomain; import lombok.Getter; import lombok.Setter; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; import java.util.Map; @@ -15,6 +16,7 @@ import java.util.Map; @Getter @Setter @Document(collection = "excel-mappings") +@Table("excel_mappings") public class ExcelMapping extends AuditDomain { // 映射关系 diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Permission.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Permission.java index 5e66786..3a6de98 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Permission.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Permission.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.Getter; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; /** * 权限 @@ -14,6 +15,7 @@ import org.springframework.data.mongodb.core.mapping.Document; * @author wangyu */ @Document +@Table @Data @EqualsAndHashCode(callSuper = true) public class Permission extends TreeDomain { diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java index 8423660..17e1c36 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/Role.java @@ -6,6 +6,7 @@ import com.flyfish.framework.enums.RoleType; import lombok.*; import org.springframework.data.annotation.Reference; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; import java.util.List; @@ -15,6 +16,7 @@ import java.util.List; * @author wangyu */ @Document +@Table @Data @Builder @AllArgsConstructor diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java index 3084731..1cc1207 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java @@ -12,12 +12,13 @@ import org.springframework.data.annotation.Reference; import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; import java.time.LocalDateTime; -import java.util.Date; import java.util.List; @Document +@Table @Data @Builder @NoArgsConstructor diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java index 3d54e17..95fe2a5 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java +++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java @@ -5,14 +5,20 @@ import com.flyfish.framework.r2dbc.operations.R2dbcReactiveEntityOperations; import com.flyfish.framework.r2dbc.repository.factory.DefaultReactiveRepositoryFactoryBean; import com.flyfish.framework.r2dbc.repository.impl.DefaultReactiveRepositoryImpl; import com.flyfish.framework.repository.ReactiveEntityOperations; -import org.springframework.boot.autoconfigure.AutoConfiguration; +import io.r2dbc.spi.ConnectionFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration; import org.springframework.context.annotation.Bean; +import org.springframework.core.io.ClassPathResource; import org.springframework.data.mapping.callback.EntityCallback; import org.springframework.data.r2dbc.config.EnableR2dbcAuditing; import org.springframework.data.r2dbc.core.R2dbcEntityOperations; import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; +import org.springframework.r2dbc.connection.init.CompositeDatabasePopulator; +import org.springframework.r2dbc.connection.init.ConnectionFactoryInitializer; +import org.springframework.r2dbc.connection.init.DatabasePopulator; +import org.springframework.r2dbc.connection.init.ResourceDatabasePopulator; + +import java.util.Optional; /** * r2dbc数据配置 @@ -21,10 +27,10 @@ import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; */ @EnableR2dbcRepositories( repositoryFactoryBeanClass = DefaultReactiveRepositoryFactoryBean.class, - repositoryBaseClass = DefaultReactiveRepositoryImpl.class + repositoryBaseClass = DefaultReactiveRepositoryImpl.class, + basePackages = "com.flyfish.framework" ) @EnableR2dbcAuditing -@AutoConfiguration(after = R2dbcDataAutoConfiguration.class) public class R2dbcDataConfig { @Bean @@ -37,4 +43,41 @@ public class R2dbcDataConfig { public ReactiveEntityOperations r2dbcReactiveEntityOperations(R2dbcEntityOperations r2dbcEntityOperations) { return new R2dbcReactiveEntityOperations(r2dbcEntityOperations); } + + /** + * 数据库初始化 + * + * @param connectionFactory 链接仓库 + * @return 结果 + */ + @Bean + public ConnectionFactoryInitializer connectionFactoryInitializer(ConnectionFactory connectionFactory) { + ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer(); + initializer.setConnectionFactory(connectionFactory); + CompositeDatabasePopulator populator = new CompositeDatabasePopulator(); + // 添加主要脚本 + preparePopulator("schema.sql").ifPresent(populator::addPopulators); + // 动态执行方言脚本 + preparePopulator("dialect/" + connectionFactory.getMetadata().getName().toLowerCase() + ".sql") + .ifPresent(populator::addPopulators); + initializer.setDatabasePopulator(populator); + // 添加清理脚本 + preparePopulator("schema-clean.sql").ifPresent(initializer::setDatabaseCleaner); + // 返回初始化器 + return initializer; + } + + /** + * 动态判定存在性,提供健壮的架构 + * + * @param path 文件路径 + * @return 结果 + */ + private Optional preparePopulator(String path) { + ClassPathResource schema = new ClassPathResource(path); + if (schema.exists()) { + return Optional.of(new ResourceDatabasePopulator(schema)); + } + return Optional.empty(); + } } diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcReferenceEntityCallback.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcReferenceEntityCallback.java index f541bd8..480bd86 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcReferenceEntityCallback.java +++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcReferenceEntityCallback.java @@ -4,6 +4,7 @@ import com.flyfish.framework.domain.base.Domain; import org.reactivestreams.Publisher; import org.springframework.data.r2dbc.mapping.event.AfterConvertCallback; import org.springframework.data.relational.core.sql.SqlIdentifier; +import reactor.core.publisher.Mono; /** * 给r2dbc中的实体进行关联填充 @@ -22,6 +23,6 @@ public class R2dbcReferenceEntityCallback implements AfterConvertCallback onAfterConvert(Domain entity, SqlIdentifier table) { - return null; + return Mono.just(entity); } } diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/repository/impl/DefaultReactiveRepositoryImpl.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/repository/impl/DefaultReactiveRepositoryImpl.java index fdddd83..a3eb5bf 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/repository/impl/DefaultReactiveRepositoryImpl.java +++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/repository/impl/DefaultReactiveRepositoryImpl.java @@ -229,9 +229,6 @@ public class DefaultReactiveRepositoryImpl extends SimpleR2dbc } private Optional getQuery(Qo qo) { - if (null != qo.getExample()) { - - } return qo.getQuery(entity); } } diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java index 72e3fc0..b679be6 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java +++ b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java @@ -8,7 +8,10 @@ import com.flyfish.framework.r2dbc.repository.TestQO; import com.flyfish.framework.r2dbc.repository.TestRepository; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -17,7 +20,7 @@ import java.util.Arrays; @ExtendWith(SpringExtension.class) @SpringBootTest(classes = R2DbcRepositoryTest.class) -@EnableR2dbcRepo(basePackages = "com.flyfish.framework.r2dbc.repository") +@SpringBootApplication(scanBasePackages = "com.flyfish.framework") @Import(R2dbcDataConfig.class) public class R2DbcRepositoryTest { @@ -27,7 +30,13 @@ public class R2DbcRepositoryTest { @Test public void test() { TestQO qo = new TestQO(); - qo.setIds(Arrays.asList("1", "2")); - testRepository.findAll(qo).subscribe(System.out::println); + qo.setName("名"); + TestDO test = new TestDO(); + test.setId("1"); + test.setCode("ttt"); + test.setName("测试名称"); + + System.out.println(testRepository.insert(test).block()); + System.out.println(testRepository.findAll(qo).collectList().block()); } } diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/resources/applicaiton.yml b/flyfish-data/flyfish-data-r2dbc/src/test/resources/application.yml similarity index 100% rename from flyfish-data/flyfish-data-r2dbc/src/test/resources/applicaiton.yml rename to flyfish-data/flyfish-data-r2dbc/src/test/resources/application.yml diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/resources/schema-clean.sql b/flyfish-data/flyfish-data-r2dbc/src/test/resources/schema-clean.sql new file mode 100644 index 0000000..ea9d6dd --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/resources/schema-clean.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS `test`; diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/resources/schema.sql b/flyfish-data/flyfish-data-r2dbc/src/test/resources/schema.sql new file mode 100644 index 0000000..17ff389 --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/resources/schema.sql @@ -0,0 +1,14 @@ +CREATE TABLE IF NOT EXISTS `test` +( + `id` VARCHAR(36) NOT NULL COMMENT '主键', + `code` VARCHAR(32) NOT NULL COMMENT '编码', + `name` VARCHAR(100) NOT NULL COMMENT '名称', + `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `modify_time` DATETIME NOT NULL COMMENT '修改时间', + `creator` VARCHAR(36) NULL COMMENT '创建人名称', + `creator_id` VARCHAR(36) NULL COMMENT '创建人id', + `modifier` VARCHAR(36) NULL COMMENT '修改人名称', + `modifier_id` VARCHAR(36) NULL COMMENT '修改人id', + `delete` BIT(1) NOT NULL DEFAULT b'0', + PRIMARY KEY (`id`) +) COMMENT '测试表'; diff --git a/flyfish-web/pom.xml b/flyfish-web/pom.xml index ce579af..5064d4d 100644 --- a/flyfish-web/pom.xml +++ b/flyfish-web/pom.xml @@ -34,7 +34,7 @@ org.springframework.data - spring-data-relational + spring-data-r2dbc true diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java index 1cf9c3a..3504d1d 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ClassUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,6 +28,7 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping("beans") +@ConditionalOnBean(DynamicRestBeanResolver.class) @Slf4j public class BeanController { diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java index dee59bc..fa656e7 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java @@ -23,11 +23,11 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.lang3.reflect.TypeUtils; import org.springframework.beans.BeanUtils; -import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.annotation.MergedAnnotation; import org.springframework.core.annotation.MergedAnnotations; import org.springframework.data.annotation.Reference; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; @@ -45,6 +45,10 @@ import java.util.stream.Collectors; @Data public class BeanProperty { + private static final String MONGO_DOCUMENT = "org.springframework.data.mongodb.core.mapping.Document"; + + private static final String R2DBC_TABLE = "org.springframework.data.relational.core.mapping.Table"; + // 属性名称 private String name; @@ -347,12 +351,17 @@ public class BeanProperty { * @return 结果 */ private static Optional processDbRef(Class clazz) { - return Optional.ofNullable(AnnotatedElementUtils.findMergedAnnotation(clazz, Document.class)) - .map(document -> { - String collection = document.value(); - return StringUtils.isNotBlank(collection) ? collection : - BeanUris.getUri(clazz).orElse(StringFormats.camel2Line(clazz.getSimpleName())); - }); + MergedAnnotations annotations = MergedAnnotations.from(clazz); + String name = null; + if (annotations.isPresent(MONGO_DOCUMENT)) { + name = annotations.get(Document.class).getString("value"); + } + if (annotations.isPresent(R2DBC_TABLE)) { + name = annotations.get(Table.class).getString("value"); + } + name = StringUtils.isNotBlank(name) ? name : + BeanUris.getUri(clazz).orElse(StringFormats.camel2Line(clazz.getSimpleName())); + return Optional.of(name).filter(StringUtils::isNotBlank); } /** diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java index f880d5c..347a34c 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java @@ -10,6 +10,7 @@ import com.flyfish.framework.repository.DefaultReactiveRepository; import com.flyfish.framework.service.impl.BaseReactiveServiceImpl; import org.springframework.core.annotation.AliasFor; import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.relational.core.mapping.Table; import org.springframework.data.repository.Repository; import java.lang.annotation.*; @@ -23,6 +24,7 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Documented @Document +@Table public @interface RestBean { /** @@ -33,6 +35,13 @@ public @interface RestBean { @AliasFor(value = "collection", annotation = Document.class) String value() default ""; + /** + * 表名 + * @return + */ + @AliasFor(value = "value", annotation = Table.class) + String table() default ""; + /** * 名称,可用于占位 * diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/repository/RepositoryRegistrarComposite.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/repository/RepositoryRegistrarComposite.java index f683b11..f936622 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/repository/RepositoryRegistrarComposite.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/repository/RepositoryRegistrarComposite.java @@ -11,6 +11,8 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories; import org.springframework.data.mongodb.repository.config.MongoRepositoryConfigurationExtension; import org.springframework.data.mongodb.repository.config.ReactiveMongoRepositoryConfigurationExtension; +import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; +import org.springframework.data.r2dbc.repository.config.R2dbcRepositoryConfigurationExtension; import java.util.ArrayList; import java.util.List; @@ -24,16 +26,26 @@ class RepositoryRegistrarComposite implements RepositoryRegistrar { private final List registrars; + private final String ENABLE_MONGO_REPO_ANNO = "org.springframework.data.mongodb.repository.config.EnableMongoRepositories"; + + private final String ENABLE_REACTIVE_MONGO_REPO_ANNO = "org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories"; + + private final String ENABLE_R2DBC_REPO_ANNO = "org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories"; + RepositoryRegistrarComposite(AnnotationMetadata metadata) { List list = new ArrayList<>(); - if (metadata.hasMetaAnnotation(EnableMongoRepositories.class.getName())) { + if (metadata.hasMetaAnnotation(ENABLE_MONGO_REPO_ANNO)) { list.add(new SimpleRepositoryRegistrar(EnableMongoRepositories.class, new MongoRepositoryConfigurationExtension(), DefaultRepository.class)); } - if (metadata.hasMetaAnnotation(EnableReactiveMongoRepositories.class.getName())) { + if (metadata.hasMetaAnnotation(ENABLE_REACTIVE_MONGO_REPO_ANNO)) { list.add(new SimpleRepositoryRegistrar(EnableReactiveMongoRepositories.class, new ReactiveMongoRepositoryConfigurationExtension(), DefaultReactiveRepository.class)); } + if (metadata.hasMetaAnnotation(ENABLE_R2DBC_REPO_ANNO)) { + list.add(new SimpleRepositoryRegistrar(EnableR2dbcRepositories.class, new R2dbcRepositoryConfigurationExtension(), + DefaultReactiveRepository.class)); + } this.registrars = list; } diff --git a/pom.xml b/pom.xml index 206746a..61a269d 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ Finchley.SR1 0.12.6 0.10.2 - 1.1.3 + 0.9.7 1.5.0