From 2f2ae4b6efec24fcd12336e1e14f94139aae34f0 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Tue, 5 Jan 2021 00:08:35 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E5=8A=A8=E6=80=81=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BC=96=E8=AF=91=E5=BC=95=E6=93=8E=E6=88=90=E7=86=9F?= =?UTF-8?q?=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flyfish/framework/beans/enums/RestBeanCandidate.java | 6 ++++++ .../flyfish/framework/config/RestBeanAutoConfigure.java | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 flyfish-web/src/main/java/com/flyfish/framework/beans/enums/RestBeanCandidate.java diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/enums/RestBeanCandidate.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/enums/RestBeanCandidate.java new file mode 100644 index 0000000..8e8dc1d --- /dev/null +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/enums/RestBeanCandidate.java @@ -0,0 +1,6 @@ +package com.flyfish.framework.beans.enums; + +public enum RestBeanCandidate { + + REPOSITORY, SERVICE, CONTROLLER +} diff --git a/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java b/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java index e2be5e7..169bdd5 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java @@ -8,6 +8,7 @@ import com.flyfish.framework.compiler.DynamicJavaCompiler; import com.flyfish.framework.compiler.support.JavaSource; import com.flyfish.framework.compiler.template.TemplateCompiler; import com.flyfish.framework.utils.Assert; +import com.flyfish.framework.utils.StringFormats; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; @@ -41,7 +42,10 @@ public class RestBeanAutoConfigure implements ImportBeanDefinitionRegistrar, Res // 预编译模板 private final Map> templates = Stream.of("Repository", "Service", "Controller") .collect(Collectors.toMap(key -> key, filename -> TemplateCompiler.compile("/templates/" + filename + ".tpl"))); + // 存放父类值的映射 private final Map>> superClasses; + // 编译器引用 + private final DynamicJavaCompiler compiler = DynamicJavaCompiler.delegate(); // 资源加载器 private ResourceLoader resourceLoader; @@ -68,8 +72,6 @@ public class RestBeanAutoConfigure implements ImportBeanDefinitionRegistrar, Res Set basePackages = getBasePackages(metadata); // 扫描包路径,检测RestBean注解的bean Reflections reflections = new Reflections(basePackages); - // 编译器 - DynamicJavaCompiler compiler = DynamicJavaCompiler.delegate(); // repo注册器 CustomRepositoryRegistrar repositoryRegistrar = new CustomRepositoryRegistrar(metadata, resourceLoader, environment, registry, beanNameGenerator); @@ -84,7 +86,7 @@ public class RestBeanAutoConfigure implements ImportBeanDefinitionRegistrar, Res .setBeanClass(clazz.getCanonicalName()) .setQueryBeanClass(restBean.queryClass().getCanonicalName()) .setPackageName(basePackages.stream().findFirst().orElse("com.flyfish.project")) - .setUri(restBean.value()); + .setUri(StringUtils.isBlank(restBean.value()) ? StringFormats.camel2Line(clazz.getSimpleName()) : restBean.value()); // 分别生成实现类,从repo到controller templates.forEach((key, template) -> { source.setSuperClass(superClasses.get(key).apply(restBean).getCanonicalName());