반응형
SMALL
package com.in28minutes.rest.webservices.restfulwebservices.filtering;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.hibernate.annotations.DialectOverride.Filters;
import org.springframework.http.converter.json.MappingJacksonValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.databind.ser.FilterProvider;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
@RestController
public class FilteringController {
@GetMapping("/filtering")
public MappingJacksonValue filtering() {
SomeBean someBean = new SomeBean("value1", "value2", "value3");
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(someBean);
SimpleBeanPropertyFilter Filter = SimpleBeanPropertyFilter.filterOutAllExcept("field1","field3"); //2 안나옴
FilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter",Filter);
mappingJacksonValue.setFilters(filters);
return mappingJacksonValue;
}
@GetMapping("/filtering-list")
public MappingJacksonValue JacksonValue () {
List<SomeBean> list = Arrays.asList(new SomeBean("value1", "value2", "value3"),
new SomeBean("value4", "value5", "value6"));
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(list);
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.filterOutAllExcept("filed2","filed3");
FilterProvider filters = new SimpleFilterProvider().addFilter("SomeBeanFilter", filter);
mappingJacksonValue.setFilters(filters);
return mappingJacksonValue;
}
}
package com.in28minutes.rest.webservices.restfulwebservices.filtering;
import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
//@JsonIgnoreProperties({"field1","field2"}) //정적필터링
@JsonFilter("SomeBeanFilter")
public class SomeBean {
private String field1;
//@JsonIgnore //정적필터링
private String field2;
private String field3;
public SomeBean(String field1, String field2, String field3) {
super();
this.field1 = field1;
this.field2 = field2;
this.field3 = field3;
}
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}
public String getField3() {
return field3;
}
public void setField3(String field3) {
this.field3 = field3;
}
@Override
public String toString() {
return "SomeBean [field1=" + field1 + ", field2=" + field2 + ", field3=" + field3 + "]";
}
}
반응형
LIST
'Spring > Spring Boot' 카테고리의 다른 글
User @Entity, @id, @GeneratedValue 적용 (0) | 2023.10.06 |
---|---|
Actuator로 API 모니터링/HAL explorer로 API 탐색 (0) | 2023.10.06 |
REST API 버전 관리 (params, headers, produces) (0) | 2023.10.05 |
name, password 구현 (0) | 2023.09.21 |
logging (0) | 2023.09.21 |