1. 개별 사용자 조회
User 객쳉 @JsonFilter("UserInfo") 어노테이션 추가
User
import com.fasterxml.jackson.annotation.JsonFilter; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import jakarta.validation.constraints.Past; import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Date; @Data @AllArgsConstructor //@JsonIgnoreProperties(value = {"password" }) @JsonFilter("UserInfo") public class User { private Integer id; @Size(min=2, message = "Name 은 2글자 이상 입력해 주세요.") private String name; //과거데이터만 올수 있는 제약 조건 @Past private Date joinDate; // @JsonIgnore private String password; // @JsonIgnore private String ssn; }
AdminUserController
@GetMapping("/users/{id}") public MappingJacksonValue retrieveUser(@PathVariable int id){ User user =service.findOne(id); if(user==null){ throw new UserNotFoundException(String.format("ID[%s] not found", id)); } SimpleBeanPropertyFilter filter =SimpleBeanPropertyFilter.filterOutAllExcept("id","name", "joinDate", "ssn"); FilterProvider filters =new SimpleFilterProvider().addFilter("UserInfo", filter); MappingJacksonValue mapping =new MappingJacksonValue(user); mapping.setFilters(filters); return mapping; }
2. 전제 사용자 조회
@GetMapping("/users") public MappingJacksonValue retrieveAllUsers() { List<User> users = service.findAll(); SimpleBeanPropertyFilter filter =SimpleBeanPropertyFilter.filterOutAllExcept("id","name", "joinDate", "password"); FilterProvider filters =new SimpleFilterProvider().addFilter("UserInfo", filter); MappingJacksonValue mapping =new MappingJacksonValue(users); mapping.setFilters(filters); return mapping; }
댓글 ( 4)
댓글 남기기