● 비동기 요청
요청에 대한 결과가 동시에 일어나지 않고 요청을 한번데 다받고 이벤트가 준비 되었을 때 응답을 나중에 이루어진다.
즉, 비동기 방식은 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행 할 수 있다는 것으로 A작업이 시작하면 동시에 B작업이 실행된다. A작업은 결과값이 나오는대로 출력된다.
view에 rest.jsp 파일을 만들어준다.
< 실행화면 >
그리고 controller에 RestTestController 클래스를 만들어주고 getmapping을 해준다.
- add get 요청에 대한 처리(AXIOS)
RestTestController에서 작성하는데 서비스도 연결해준다.
실행시켜 AXIOS의 동기 GET에 값을 넣어보고 workbench로 가서 값이 들어갔는지 확인한다.
axios cdn을 받아 rest.jsp에 넣어준다.
추가를 했으면 자바스크립트로 rest.jsp에 값을 넣으면 비동기 요청이 되도록 코드를 작성해준다.
실행해서 이번에는 AXIOS의 ADD 비동기 GET 요청에 값을 넣고 console을 확인해보면 해당 값이 출력되는 것을 확인할 수 있다.
요청받을 restController를 지정하기 위해 restController에 MemoRestController 클래스를 만들어 줘서 작성한다.
서버에서 받을 준비를 하기 위해 MemoRestController를 작성한다.
그리고 rest.jsp 에서 axios get 요청을 작성한다.
실행하여 값을 넣고 확인해보면 workbench에도 값이 들어간 것을 확인 할 수 있다.
이번에는 성공시 성공했다는 알림이 뜨고 실패시 실패 알림이 뜨도록 if문을 사용해서 작성해본다.
값을 넣으면 add에 성공했다는 알림이 뜨게 된다.
하지만 기본키 중복이어도 add 가 성공했다고 뜨기 때문에 실패했다고 뜨게 해본다.
MemoMapper에서 insert를 throws로 예외로 던져준다.
MemoController.java에서도 throws로 예외로 던져준다.
MemoServiceImpl.java 에서 memoRegistration의 형태를 try catch로 묶고 addMemoTx를 throws 로 예외를 던져준다.
그러고 다시 실행해보면 이전에 넣었던 id를 넣을때 add가 실패했다고 나오게 된다.
id를 이전에 넣지 않은 값을 넣으면 성공했다고 뜬다.
콘솔창을 살펴보면 실패했을 땐 false가 성공했을 땐 true가 뜨는 것을 볼 수 있다.
또 다른 방법으로 예외를 처리하는 방법이 있다.
우선 똑같이 MemoMapper.java 를 throws 해준다.
MemoServiceImpl.java에는 memoRegistration을 try catch가 아닌 throws로 던져 준다.
그리고 MemoRestController에 가서 add_get을 try catch 해준다.
그리고 나머지 빨간 줄이 그인 모든 곳을 throw로 던지면 된다.