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());