diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooController.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooController.java
index c69a8aa..56e64f7 100644
--- a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooController.java
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooController.java
@@ -1,9 +1,10 @@
 package com.supwisdom.leaveschool.foo.controller;
 
 import com.supwisdom.infras.lang.random.RandomGenerator;
-import com.supwisdom.leaveschool.foo.model.BarException;
+import com.supwisdom.leaveschool.foo.dto.FooPostCommand;
+import com.supwisdom.leaveschool.foo.exception.BarException;
 import com.supwisdom.leaveschool.foo.model.Foo;
-import com.supwisdom.leaveschool.foo.model.FooException;
+import com.supwisdom.leaveschool.foo.exception.FooException;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -40,7 +41,7 @@
    * @return
    */
   @PostMapping(path = "/model")
-  public String model(@Valid @ModelAttribute Foo foo) {
+  public String model(@Valid @ModelAttribute FooPostCommand foo) {
     return "foo/model";
   }
 
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooRestController.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooRestController.java
index b5b8911..c1e3732 100644
--- a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooRestController.java
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/controller/FooRestController.java
@@ -1,9 +1,14 @@
 package com.supwisdom.leaveschool.foo.controller;
 
 import com.supwisdom.infras.lang.random.RandomGenerator;
-import com.supwisdom.leaveschool.foo.model.BarException;
-import com.supwisdom.leaveschool.foo.model.Foo;
-import com.supwisdom.leaveschool.foo.model.FooException;
+import com.supwisdom.infras.objectmapper.ObjectMapper;
+import com.supwisdom.leaveschool.foo.dto.FooDto;
+import com.supwisdom.leaveschool.foo.dto.FooPostCommand;
+import com.supwisdom.leaveschool.foo.dto.Page;
+import com.supwisdom.leaveschool.foo.exception.BarException;
+import com.supwisdom.leaveschool.foo.exception.FooException;
+import com.supwisdom.leaveschool.foo.repo.FooRepository;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.util.MimeTypeUtils;
 import org.springframework.web.bind.annotation.*;
@@ -13,13 +18,18 @@
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * curl -H 'Accept:application/json' 'http://localhost:8080/foo-rest/greeting/abc'
- */
+import static java.util.stream.Collectors.toList;
+
 @RestController
 @RequestMapping("/foo-rest")
 public class FooRestController {
 
+  @Autowired
+  private FooRepository fooRepository;
+
+  @Autowired
+  private ObjectMapper objectMapper;
+
   /**
    * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8080/foo-rest/greeting/abc'
    *
@@ -35,28 +45,29 @@
 
   /**
    * good请求：
-   * curl -i -s -X POST -H 'Accept=application/json' 'http://localhost:8080/foo-rest/model?name=abc&age=1'
-   *
+   * curl -i -s -X POST -H 'Accept:application/json' 'http://localhost:8080/foo-rest/model?name=abc&age=1'
    * bad请求：
-   * curl -i -s -X POST -H 'Accept=application/json' 'http://localhost:8080/foo-rest/model?name=abc&age=-1'
+   * curl -i -s -X POST -H 'Accept:application/json' 'http://localhost:8080/foo-rest/model?name=abc&age=-1'
    *
    * @param foo
    * @return
    */
   @PostMapping(path = "/model", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
-  public Foo model(@Valid Foo foo) {
+  public FooPostCommand model(@Valid FooPostCommand foo) {
     return foo;
   }
 
   /**
-   * curl -i -s -X GET -H 'Accept=application/json' 'http://localhost:8080/foo-rest/foo-exception?with-message=1'
-   * curl -i -s -X GET -H 'Accept=application/json' 'http://localhost:8080/foo-rest/foo-exception?with-message=0'
+   * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8080/foo-rest/foo-exception?with-message=1'
+   * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8080/foo-rest/foo-exception?with-message=0'
    *
    * @return
    * @throws FooException
    */
   @GetMapping(path = "/foo-exception", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
-  public Map<String, Object> exception1(@RequestParam(value = "with-message", required = false, defaultValue = "false") boolean withMessage) throws FooException {
+  public Map<String, Object> exception1(
+      @RequestParam(value = "with-message", required = false, defaultValue = "false") boolean withMessage)
+      throws FooException {
     if (withMessage) {
       throw new FooException(RandomGenerator.randomStringAlphabetic(10));
     } else {
@@ -66,7 +77,7 @@
   }
 
   /**
-   * curl -i -s -X GET -H 'Accept=application/json' 'http://localhost:8080/foo-rest/bar-exception'
+   * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8080/foo-rest/bar-exception'
    *
    * @return
    */
@@ -79,4 +90,17 @@
     }
   }
 
+  /**
+   * curl -i -s -X GET -H 'Accept:application/json' 'http://localhost:8080/foo-rest/all'
+   *
+   * @return
+   */
+  @GetMapping(path = "/all", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+  public Page getAll() throws FooException {
+    return new Page(fooRepository.getAll()
+        .stream()
+        .map(f -> objectMapper.map(f, FooDto.class))
+        .collect(toList())
+    );
+  }
 }
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/Dto.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/Dto.java
new file mode 100644
index 0000000..bc8ca75
--- /dev/null
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/Dto.java
@@ -0,0 +1,6 @@
+package com.supwisdom.leaveschool.foo.dto;
+
+import java.io.Serializable;
+
+public interface Dto extends Serializable {
+}
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/FooDto.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/FooDto.java
new file mode 100644
index 0000000..7bdadb6
--- /dev/null
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/FooDto.java
@@ -0,0 +1,23 @@
+package com.supwisdom.leaveschool.foo.dto;
+
+public class FooDto implements Dto {
+
+  private String name;
+  private int age;
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public int getAge() {
+    return age;
+  }
+
+  public void setAge(int age) {
+    this.age = age;
+  }
+}
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/FooPostCommand.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/FooPostCommand.java
new file mode 100644
index 0000000..cbef7b4
--- /dev/null
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/FooPostCommand.java
@@ -0,0 +1,31 @@
+package com.supwisdom.leaveschool.foo.dto;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+public class FooPostCommand implements Dto {
+
+  @NotNull
+  @NotEmpty
+  private String name;
+
+  @Min(0)
+  private int age;
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public int getAge() {
+    return age;
+  }
+
+  public void setAge(int age) {
+    this.age = age;
+  }
+}
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/Page.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/Page.java
new file mode 100644
index 0000000..3cc46f9
--- /dev/null
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/dto/Page.java
@@ -0,0 +1,16 @@
+package com.supwisdom.leaveschool.foo.dto;
+
+import java.util.List;
+
+public class Page implements Dto {
+
+  private List<? extends Dto> data;
+
+  public Page(List<? extends Dto> data) {
+    this.data = data;
+  }
+
+  public List<? extends Dto> getData() {
+    return data;
+  }
+}
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/BarException.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/exception/BarException.java
similarity index 90%
rename from samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/BarException.java
rename to samples/foo/src/main/java/com/supwisdom/leaveschool/foo/exception/BarException.java
index e5b18a1..9aa3b3c 100644
--- a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/BarException.java
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/exception/BarException.java
@@ -1,4 +1,4 @@
-package com.supwisdom.leaveschool.foo.model;
+package com.supwisdom.leaveschool.foo.exception;
 
 public class BarException extends Exception {
   public BarException() {
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/FooException.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/exception/FooException.java
similarity index 89%
rename from samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/FooException.java
rename to samples/foo/src/main/java/com/supwisdom/leaveschool/foo/exception/FooException.java
index 1b319af..4d4f08d 100644
--- a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/FooException.java
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/exception/FooException.java
@@ -1,4 +1,4 @@
-package com.supwisdom.leaveschool.foo.model;
+package com.supwisdom.leaveschool.foo.exception;
 
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ResponseStatus;
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/Foo.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/Foo.java
index f86f7f2..5d4e0e0 100644
--- a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/Foo.java
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/model/Foo.java
@@ -1,16 +1,9 @@
 package com.supwisdom.leaveschool.foo.model;
 
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
 public class Foo {
 
-  @NotNull
-  @NotEmpty
   private String name;
 
-  @Min(0)
   private int age;
 
   public String getName() {
@@ -28,4 +21,9 @@
   public void setAge(int age) {
     this.age = age;
   }
+
+  public Foo(String name, int age) {
+    this.name = name;
+    this.age = age;
+  }
 }
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/repo/FooRepository.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/repo/FooRepository.java
new file mode 100644
index 0000000..5293ecf
--- /dev/null
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/repo/FooRepository.java
@@ -0,0 +1,11 @@
+package com.supwisdom.leaveschool.foo.repo;
+
+import com.supwisdom.leaveschool.foo.exception.FooException;
+import com.supwisdom.leaveschool.foo.model.Foo;
+
+import java.util.List;
+
+public interface FooRepository {
+
+  public List<Foo> getAll() throws FooException;
+}
diff --git a/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/repo/FooRepositoryImpl.java b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/repo/FooRepositoryImpl.java
new file mode 100644
index 0000000..dc174e0
--- /dev/null
+++ b/samples/foo/src/main/java/com/supwisdom/leaveschool/foo/repo/FooRepositoryImpl.java
@@ -0,0 +1,18 @@
+package com.supwisdom.leaveschool.foo.repo;
+
+import com.supwisdom.leaveschool.foo.exception.FooException;
+import com.supwisdom.leaveschool.foo.model.Foo;
+import org.springframework.stereotype.Repository;
+
+import java.util.Arrays;
+import java.util.List;
+
+@Repository
+public class FooRepositoryImpl implements FooRepository {
+
+  @Override
+  public List<Foo> getAll() throws FooException {
+    throw new FooException();
+//    return Arrays.asList(new Foo("xiehuibing", 18), new Foo("chenbo", 18), new Foo("liuhongqing", 18));
+  }
+}
diff --git a/samples/foo/src/main/resources/META-INF/spring-configuration-metadata.json b/samples/foo/src/main/resources/META-INF/spring-configuration-metadata.json
deleted file mode 100644
index 1013fc1..0000000
--- a/samples/foo/src/main/resources/META-INF/spring-configuration-metadata.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "groups": [
-    {
-      "sourceType": "com.supwisdom.leaveschool.foo.mvc.ExceptionErrorProperties",
-      "name": "exception.error-map",
-      "type": "java.util.Map",
-      "description": "Exception class -> error string的映射"
-    }
-  ]
-}
diff --git a/samples/foo/src/main/resources/application.yaml b/samples/foo/src/main/resources/application.yaml
index b223a45..a2938f6 100644
--- a/samples/foo/src/main/resources/application.yaml
+++ b/samples/foo/src/main/resources/application.yaml
@@ -1,6 +1,8 @@
 spring:
   application:
     name: sample-foo
+  mvc:
+    log-resolved-exception: true
 
 infras:
   mvc:
