[TIL]JSONObject, 컴포넌트, @RequestParam

김시원·2022년 11월 15일
0

TIL

목록 보기
17/30

@Transactional
: DB 정보를 업데이트 해줘야 한다고 알려주는 어노테이션.
: service 메소드에 쓰임.

@RequestBody
: 어플리케이션 JSON을 통해서 전달되는 그 정보가 여기 안에 쏙 알아서 삽입된다.


🔖 라이브러리 사용

  1. 구글에 maven repo 검색 후 젤 첫번째 클릭
  2. 검색 (ex, json)
  3. 젤 많이 쓰는거 확인 후 gradle 클릭 복사.
  4. 인텔리제이 build.gradle -> dependencies 에 붙여넣기.

🔖 JSONArray

: JSONObject 에서 items 배열 꺼낼 때 활용.


🔖 리스트 생성하기

List<ItemDto> itemDtoList = new ArrayList<>();

🔖 JSONObject

JSONObject rjson = new JSONObject(result);
// System.out.println(rjson);
JSONArray items = rjson.getJSONArray("items"); // rjson 에서 JSONArray를 꺼내겠다는 뜻. JSON으로 이루어진 배열을.(items가 []리스트형태로 되어있음)
// 키 값은 items라고 적혀있으니 items라 적는것.
// 변수명(items)의 형태는 JSONArray임.

🔖 컴포넌트

개발자가 스프링에게 권한을 주는 것.

: ex) 컨트롤러, 서비스, entity 이런 것들 다 컴포넌트로 등록이 되어있다. 자동으로 되어있음
: 지금 만든 NaverShopSearch는 수동으로 해줘야함.

그냥 클래스 윗줄에 @Component 라고 해주면 됨.
그럼 서비스나 컨트롤러처럼 스프링이 마음대로 권한을 획득한 것.


🔖 @RequestParam

/api/search?query=검색어
@GetMapping("/api/search")
public List<ItemDto> search(@RequestParam String query){
}

절대로 사용자가 입력한 결과가 그대로 들어가지 않는다. 스프링은 되게 엄격해서 물음표 뒤에 오는 것을 저렇게 변수로 받고싶다면 반드시 추가적인 장치를 해줘야한다. 그게 @RequestParam. request Parameter. 물음표 뒤에 있는 것을 파라미터라고 함. 그래서 요청할 때 파라미터 중에 query라는 애가 있으면 그 녀석을 여기에 넣어줘라 라는 어노테이션.
변수명을 똑같이 넣어줘야함. 여기서는 query.


profile
IT 개발자 시원

0개의 댓글

관련 채용 정보