웹개발의 봄, Spring 02

5w31892p·2022년 12월 13일
0

Spring

목록 보기
5/30

📜 Spring

:: Select Shop

:: 네이버 쇼핑 API 신청

네이버 검색 > 쇼핑 API 주소

API 이용 신청


:: 3계층

  1. Controller
    // ProductRestController : 관심 상품 관련 컨트롤러
    // SearchRequestController : 검색 관련 컨트롤러

  2. Service
    // ProductService : 관심 상품 가격 변경

  3. Repository
    // Product : 관심 상품 테이블
    // ProductRepository : 관심 상품 조회, 저장
    // ProductRequestDto : 관심 상품 등록하기
    // ProductMypriceRequestDto : 관심 가격 변경하기
    // ItemDto : 검색 결과 주고받기


:: 문자열에서 DTO로 바꾸기

org.json 패키지 설치 -> mvnrepository

  1. JSON 검색
  2. JSON In Java 클릭
  3. Usages 가장 많은 수 클릭
  4. Gradle 탭 복사
  5. build.gradle > dependencies 붙혀넣기
  6. Gradle reload

:: JSONObject, JSONArray 연습

// 1. 문자열 정보 JSONObject로 바꾸기
JSONObject rjson = new JSONObject(result);


// 2. JSONObject에서 items 배열 꺼내기
JSONArray items = rjson.getJSONArray("items");


// 3. JSONArray 로 for문
for (int i=0; i<items.length(); i++) {
	JSONObject itemJson = (JSONObject) items.get(i);
	System.out.println(itemJson);
}


// 4. JSONObject 에서 String, int 데이터 뽑기
String title = itemJson.getString("title");
int lprice = itemJson.getInt("lprice");

:: Annotation

  • @Getter
    // get함수 자동 생성
  • @MappedSuperclass
    // 멤버 변수가 컬럼이 되도록
  • @EntityListeners(AuditingEntityListener.class)
    // 변경시 자동 기록
  • @EnableJpaAuditing
    // 시간 자동 변경이 가능하도록 (Timestamped 연장선)
  • @SpringBootApplication
    // 스프링 부트 선언
  • @NoArgsConstructor
    // 기본 생성자 생성
  • @Entity
    // DB 테이블 역할
  • @Id, @GeneratedValue(strategy = GenerationType.AUTO)
    // ID가 자동으로 생성 및 증가
  • @Column(nullable = false)
    // 반드시 값을 가지도록
  • @RequiredArgsConstructor
    // final로 선언된 멤버 변수 자동 생성
  • @RestController
    // JSON으로 데이터 주고받음 선언
  • @Service
    // 서비스 선언
  • @Transactional
    // 메소드 동작이 SQL 쿼리문임을 선언
  • @Component
    // 스프링이 필요 시 자동으로 생성하는 클래스 목록에 추가
  • @Component, @RequiredArgsConstructor
    // 함께 사용할 경우 스프링 자동 생성
  • @Scheduled
    // 주기적인 작업이 있을 때, 특정시간 혹은 몇분 혹은 몇시간마다 동작
  • @EnableScheduling
    // 스프링 부트에서 스케줄러 작동하게 (Scheduled 연장선)

0개의 댓글