浏览代码

优化bean

zhouhao 8 年之前
父节点
当前提交
6c76715758

+ 0 - 33
hsweb-commons/hsweb-commons-beans/src/test/java/org/hswebframework/web/commons/beans/QueryBeanTests.java

@@ -1,33 +0,0 @@
-package org.hswebframework.web.commons.beans;
-
-import org.hswebframework.web.commons.beans.dsl.QueryBean;
-
-/**
- * TODO 完成注释
- *
- * @author zhouhao
- */
-public class QueryBeanTests {
-
-    public static void main(String[] args) {
-
-
-    }
-}
-
-class TestQuery implements QueryBean<TestQuery> {
-
-    public final TestQuery name = new TestQuery();
-    public final TestQuery age = new TestQuery();
-
-
-    @Override
-    public TestQuery like(Object value) {
-        return null;
-    }
-
-    @Override
-    public TestQuery gt(Object value) {
-        return null;
-    }
-}

+ 3 - 4
hsweb-commons/hsweb-commons-controller/src/main/java/org/hswebframework/web/controller/GenericBeanController.java

@@ -18,7 +18,6 @@
 
 package org.hswebframework.web.controller;
 
-import org.hswebframework.web.commons.beans.Bean;
 import org.hswebframework.web.commons.beans.GenericBean;
 import org.hswebframework.web.commons.beans.param.QueryParamBean;
 import org.hswebframework.web.controller.message.ResponseMessage;
@@ -33,10 +32,10 @@ import static org.hswebframework.web.controller.message.ResponseMessage.ok;
  *
  * @author zhouhao
  */
-public interface GenericBeanController<B extends GenericBean<PK>, PK, Q extends Bean>
-        extends CrudController<B, PK, Q> {
+public interface GenericBeanController<B extends GenericBean<PK>, PK>
+        extends CrudController<B, PK, QueryParamBean> {
 
-    CrudService<B, PK, Q> getService();
+    CrudService<B, PK, QueryParamBean> getService();
 
     @Override
     default ResponseMessage updateByPrimaryKey(@PathVariable PK id, @RequestBody B data) {

+ 11 - 1
hsweb-commons/hsweb-commons-service/hsweb-commons-service-api/src/main/java/org/hswebframework/web/service/CreateBeanService.java

@@ -19,10 +19,20 @@
 package org.hswebframework.web.service;
 
 /**
- * TODO 完成注释
+ * 实体创建服务接口,通过此接口创建实体.在创建实体类时,建议使用此接口进行创建,而不是使用new
+ * 如:
+ * <code>
+ * YourBean bean =  service.createBean();
+ * </code>
  *
  * @author zhouhao
+ * @since 3.0
  */
 public interface CreateBeanService<B> {
+    /**
+     * 创建实体
+     *
+     * @return 实体
+     */
     B createBean();
 }

+ 2 - 2
hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/src/main/java/org/hswebframework/web/service/GenericBeanService.java

@@ -69,7 +69,7 @@ public abstract class GenericBeanService<B extends GenericBean<PK>, PK> implemen
     }
 
     protected Class<B> getBeanRealType() {
-        return beanFactory.getRealType(getBeanType());
+        return beanFactory.getInstanceType(getBeanType());
     }
 
     protected Class<B> getBeanType() {
@@ -85,7 +85,7 @@ public abstract class GenericBeanService<B extends GenericBean<PK>, PK> implemen
         if (!beanFactoryIsEnabled()) {
             throw new UnsupportedOperationException("{unsupported_operation}");
         }
-        return beanFactory.getInstance(getBeanType());
+        return beanFactory.newInstance(getBeanType());
     }
 
     public void tryValidate(B bean) {

+ 9 - 0
hsweb-starter/hsweb-spring-boot-starter/pom.xml

@@ -52,5 +52,14 @@
             <groupId>org.hswebframework</groupId>
             <artifactId>hsweb-easy-orm-rdb</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hswebframework.web</groupId>
+            <artifactId>hsweb-commons-controller</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     </dependencies>
 </project>

+ 6 - 30
hsweb-system/hsweb-system-config/hsweb-system-config-bean/src/main/java/org/hswebframework/web/bean/config/ConfigBean.java

@@ -34,7 +34,7 @@ public interface ConfigBean extends GenericBean<String> {
 
     String getCreatorId();
 
-    ConfigBean setCreatorId(String creatorId);
+    void setCreatorId(String creatorId);
 
     /**
      * 获取 备注
@@ -48,7 +48,7 @@ public interface ConfigBean extends GenericBean<String> {
      *
      * @param remark 备注
      */
-    ConfigBean setRemark(String remark);
+    void setRemark(String remark);
 
     /**
      * 获取 配置内容
@@ -62,7 +62,7 @@ public interface ConfigBean extends GenericBean<String> {
      *
      * @param content 配置内容
      */
-    ConfigBean setContent(List<ConfigContent> content);
+    void setContent(List<ConfigContent> content);
 
     /**
      * 获取 创建日期
@@ -76,7 +76,7 @@ public interface ConfigBean extends GenericBean<String> {
      *
      * @param createDate 创建日期
      */
-    ConfigBean setCreateDate(Date createDate);
+    void setCreateDate(Date createDate);
 
     /**
      * 获取 最后一次修改日期
@@ -90,7 +90,7 @@ public interface ConfigBean extends GenericBean<String> {
      *
      * @param updateDate 最后一次修改日期
      */
-    ConfigBean setUpdateDate(Date updateDate);
+    void setUpdateDate(Date updateDate);
 
     /**
      * 获取分类ID
@@ -104,33 +104,9 @@ public interface ConfigBean extends GenericBean<String> {
      *
      * @param classifiedId 分类ID
      */
-    ConfigBean setClassifiedId(String classifiedId);
+    void setClassifiedId(String classifiedId);
 
     ConfigBean addContent(String key, Object value, String comment);
 
     ConfigContent get(String key);
-
-    interface ConfigContent {
-        String getKey();
-
-        Object getValue();
-
-        String getComment();
-
-        default Number getNumber(Number defaultValue) {
-            Object val = getValue();
-            if (null == val) return defaultValue;
-            if (val instanceof Number) return ((Number) val);
-            if (val instanceof String)
-                return new BigDecimal(((String) val));
-            return defaultValue;
-        }
-
-        default Object getValue(Object defaultValue) {
-            Object val = getValue();
-            if (val == null) return defaultValue;
-            return val;
-        }
-
-    }
 }

+ 69 - 0
hsweb-system/hsweb-system-config/hsweb-system-config-bean/src/main/java/org/hswebframework/web/bean/config/ConfigContent.java

@@ -0,0 +1,69 @@
+package org.hswebframework.web.bean.config;
+
+import org.hswebframework.web.commons.beans.CloneableBean;
+
+import java.math.BigDecimal;
+
+public class ConfigContent implements CloneableBean {
+    private String key;
+
+    private Object value;
+
+    private String comment;
+
+    public ConfigContent() {
+    }
+
+    public ConfigContent(String key, Object value, String comment) {
+        this.key = key;
+        this.value = value;
+        this.comment = comment;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public Object getValue() {
+        return value;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public void setValue(Object value) {
+        this.value = value;
+    }
+
+    public Number getNumber(Number defaultValue) {
+        Object val = getValue();
+        if (null == val) return defaultValue;
+        if (val instanceof Number) return ((Number) val);
+        if (val instanceof String)
+            return new BigDecimal(((String) val));
+        return defaultValue;
+    }
+
+    public Object getValue(Object defaultValue) {
+        Object val = getValue();
+        if (val == null) return defaultValue;
+        return val;
+    }
+
+    @Override
+    public ConfigContent clone() {
+        Object val = value;
+        if (val instanceof CloneableBean)
+            val = ((CloneableBean) val).clone();
+        return new ConfigContent(key, val, comment);
+    }
+}

+ 2 - 2
hsweb-system/hsweb-system-config/hsweb-system-config-bean/src/main/java/org/hswebframework/web/bean/config/ConfigQueryBean.java

@@ -1,14 +1,14 @@
 package org.hswebframework.web.bean.config;
 
 import org.hsweb.ezorm.core.dsl.ConditionalBuilder;
-import org.hswebframework.web.commons.beans.dsl.QueryBean;
+import org.hswebframework.web.commons.beans.Bean;
 
 /**
  * TODO 完成注释
  *
  * @author zhouhao
  */
-public interface ConfigQueryBean extends QueryBean {
+public interface ConfigQueryBean extends Bean {
     ConditionalBuilder name = ConditionalBuilder.build("name");
 
 

+ 16 - 60
hsweb-system/hsweb-system-config/hsweb-system-config-bean/src/main/java/org/hswebframework/web/bean/config/SimpleConfigBean.java

@@ -19,6 +19,7 @@
 package org.hswebframework.web.bean.config;
 
 
+import org.hswebframework.web.commons.beans.CloneableBean;
 import org.hswebframework.web.commons.beans.SimpleGenericBean;
 
 import javax.validation.constraints.NotNull;
@@ -58,9 +59,9 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
         return creatorId;
     }
 
-    public ConfigBean setCreatorId(String creatorId) {
+    @Override
+    public void setCreatorId(String creatorId) {
         this.creatorId = creatorId;
-        return this;
     }
 
     @Override
@@ -69,9 +70,8 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
     }
 
     @Override
-    public ConfigBean setRemark(String remark) {
+    public void setRemark(String remark) {
         this.remark = remark;
-        return this;
     }
 
     @Override
@@ -82,7 +82,7 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
     @Override
     public ConfigBean addContent(String key, Object value, String comment) {
         if (content == null) content = new ArrayList<>();
-        content.add(new SimpleConfigContent(key, value, comment));
+        content.add(new org.hswebframework.web.bean.config.ConfigContent(key, value, comment));
         return this;
     }
 
@@ -101,9 +101,8 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
     }
 
     @Override
-    public ConfigBean setContent(List<ConfigContent> content) {
+    public void setContent(List<ConfigContent> content) {
         this.content = content;
-        return this;
     }
 
     @Override
@@ -112,9 +111,8 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
     }
 
     @Override
-    public ConfigBean setCreateDate(Date createDate) {
+    public void setCreateDate(Date createDate) {
         this.createDate = createDate;
-        return this;
     }
 
     @Override
@@ -123,9 +121,8 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
     }
 
     @Override
-    public ConfigBean setUpdateDate(Date updateDate) {
+    public void setUpdateDate(Date updateDate) {
         this.updateDate = updateDate;
-        return this;
     }
 
     @Override
@@ -134,58 +131,17 @@ public class SimpleConfigBean extends SimpleGenericBean<String> implements Confi
     }
 
     @Override
-    public ConfigBean setClassifiedId(String classifiedId) {
+    public void setClassifiedId(String classifiedId) {
         this.classifiedId = classifiedId;
-        return this;
     }
 
     @Override
-    public SimpleConfigBean cloneBean() {
-        // TODO: 16-12-23  完成克隆代码
-        return null;
-    }
-
-    public static class SimpleConfigContent implements ConfigContent {
-        private String key;
-
-        private Object value;
-
-        private String comment;
-
-        public SimpleConfigContent() {
-        }
-
-        public SimpleConfigContent(String key, Object value, String comment) {
-            this.key = key;
-            this.value = value;
-            this.comment = comment;
-        }
-
-        @Override
-        public String getKey() {
-            return key;
-        }
-
-        @Override
-        public Object getValue() {
-            return value;
-        }
-
-        @Override
-        public String getComment() {
-            return comment;
-        }
-
-        public void setComment(String comment) {
-            this.comment = comment;
-        }
-
-        public void setKey(String key) {
-            this.key = key;
-        }
-
-        public void setValue(Object value) {
-            this.value = value;
-        }
+    public SimpleConfigBean clone() {
+        SimpleConfigBean cloned = new SimpleConfigBean();
+        cloned.setId(getId());
+        cloned.setCreatorId(getCreatorId());
+        cloned.setCreateDate(getCreateDate());
+        cloned.content = getContent().stream().map(ConfigContent::clone).collect(Collectors.toList());
+        return cloned;
     }
 }