빅데이터 Java 개발자 교육 (Spring - RestController & JS]

Jun_Gyu·2023년 5월 24일
1
post-thumbnail

RestController

🚩 대표 4가지 어노테이션

1. @GetMapping 방식

/*--------------- @GetMapping 방식 ---------------*/

    // 127.0.0.1:9090/ROOT/api/test1/select.do?aaa=a&bbb=b&ccc=c
    // 조회용 @ReqeustParam(name="aaa") String aaa, 
    @GetMapping(value="/select.do")
    public Map<String,Object> get1(       ){
        Map<String, Object> retMap = new HashMap<>();
        try{
            //db처리
            retMap.put("status", 200);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        return retMap;
    }

2. @PostMapping 방식

/*--------------- @PostMapping 방식 ---------------*/

    // 추가
    // @RequestBody 엔티티 obj
    @PostMapping(value="/insert.do")
    public Map<String,Object> get2(@RequestBody 엔티티 obj){
        Map<String, Object> retMap = new HashMap<>();
        try{
            //db처리
            retMap.put("status", 200);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        return retMap;
    }

3. @PutMapping 방식

 /*--------------- @PutMapping 방식 ---------------*/

    // 수정
    // 127.0.0.1:9090/ROOT/api/test1/update.do
    // // @RequestBody 엔티티 obj
    @PutMapping(value="/update.do")
    public Map<String,Object> get3(@RequestBody 엔티티 obj){
        Map<String, Object> retMap = new HashMap<>();
        try{
            //db처리
            retMap.put("status", 200);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        return retMap;
    }

4. @DeleteMapping 방식

 /*--------------- @DeleteMapping 방식 ---------------*/

    // 삭제
    // // @RequestBody 엔티티 obj
    @DeleteMapping(value="/delete.do")
    public Map<String,Object> get4(       ){
        Map<String, Object> retMap = new HashMap<>();
        try{
            //db처리
            retMap.put("status", 200);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        return retMap;
    }

JavsScrpit

1. @GetMapping

// @GetMapping 방식
// 기능함수 앞에 async 붙여야 함!
            let url = /*[[@{/api/test1/select.do(aaa='a')}]]*/"";
			// Get 방식의 경우 parameter 사용을 위해 let으로 url을 선언,
			// 주소 뒤에 보내고자 하는 데이터를 붙인다. 
			// ex) url += '?aaa=${a.value}';
            const headers = {"Content-Type":"application/json"};
            const { data } = await axios.get(url, { headers:headers });
            console.log('반환되는 결과', data);

2. @PostMapping

// @PostMapping 방식
            const url = /*[[@{/api/test1/insert.do}]]*/"";
            const headers = {"Content-Type":"application/json"};
            const body = {id:"aaa", name:"bbb"};
            const { data } = await axios.post(url, body, { headers:headers });
            console.log('반환되는 결과', data);

3. @PutMapping

// @UpdateMapping 방식
            const url = /*[[@{/api/test1/update.do}]]*/"";
            const body = {id:"aaa", name:"bbb"};
            const headers = {"Content-Type":"application/json"};
            const { data } = await axios.put(url, body, { headers:headers });

4. @DeleteMapping

// @DeleteMapping 방식
            const url = /*[[@{/api/test1/delete.do}]]*/"";
            const body = {id:"aaa", name:"bbb"};
            const headers = {"Content-Type":"application/json"};
            const { data } = await axios.delete(url, { headers:headers, data:body });
            console.log('반환되는 결과', data);

+ 추가

페이지 실행시 함수 즉시실행

<script>
  function func1() { // 함수는 자동으로 호출되지 않음. 직접 호출시켜야 함.
		object()
  	}
           func1(); //수동으로 함수 호출함 (페이지 뜨자마자 바로 실행.)
</script>
profile
시작은 미약하지만, 그 끝은 창대하리라

0개의 댓글