Spring MVC - RestController

2020. 9. 26. 20:30Java/Spring

반응형

Spring 에서 데이터를 전달시 효율적인 전달을 위해서 Restful API를 사용해 데이터를 json 형태로 전송한다.

 

먼저 데이터를 json 형태로 변경하기 위해서 아래 jackson databind를 설치해야한다.

 

mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.11.2

 

Maven Repository: com.fasterxml.jackson.core » jackson-databind » 2.11.2

General data-binding functionality for Jackson: works on core streaming API com.fasterxml.jackson.core jackson-databind 2.11.2 // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind compile group: 'com.fasterxml.jackson.core', na

mvnrepository.com


먼저 아래와 같이 controller에 @RestController를 사용하면 해당 컨트롤러는 jsp 파일이 아닌 return에 있는 문자를 리턴한다.

@RestController
public class sampleController {
	@GetMapping("/test1")
	public String test1() {
		
		return "test1";
	}
	
}

다음과 같이 test1 문자열이 리턴된다.

이를 통해서 json 데이터를 리턴한다. 

 


시험을 위해 아래와 같이 값을 주입 가능한 DataBean을 만든다.

 

public class DataBean {

	private String data1;
	private int data2;
	private double data3;
	private boolean data4;
	
	public DataBean(String data1,int data2,double data3,boolean data4) {
		this.data1 = data1;
		this.data2 = data2;
		this.data3 = data3;
		this.data4 = data4;
	}
	
	public String getData1() {
		return data1;
	}
	public void setData1(String data1) {
		this.data1 = data1;
	}
	public int getData2() {
		return data2;
	}
	public void setData2(int data2) {
		this.data2 = data2;
	}
	public double getData3() {
		return data3;
	}
	public void setData3(double data3) {
		this.data3 = data3;
	}
	public boolean isData4() {
		return data4;
	}
	public void setData4(boolean data4) {
		this.data4 = data4;
	}
	
	
}

 

 

 

그 다음 controller를 아래와 같이 수정한다.

 

@RestController
public class sampleController {
	@GetMapping("/test1")
	public ResponseEntity<ArrayList<DataBean>> test1() {
		
		DataBean bean = new DataBean("데이터1",100,10.00,false);
		DataBean bean2 = new DataBean("데이터2",200,20.00,true);
		DataBean bean3= new DataBean("데이터3",300,30.00,false);
		DataBean bean4 = new DataBean("데이터4",400,40.00,true);
		
		ArrayList<DataBean> list = new ArrayList<DataBean>();
		list.add(bean);
		list.add(bean2);
		list.add(bean3);
		list.add(bean4);
		
		ResponseEntity<ArrayList<DataBean>> entry = new ResponseEntity<ArrayList<DataBean>>(list,HttpStatus.OK);
		
		return entry;
	}
	
}

 

 

데이터를 arrayList에 담고, 그 정보를 가지고  ResponseEntity 가 json으로 만들어준다.

 

그 후 해당 json이 담긴 entry를 리턴한다.

 

 

위와 같이 데이터가 json으로 리턴되는 것을 볼 수 있다.

반응형