📜 Spring
:: Select Shop
:: 네이버 쇼핑 API 신청
:: 3계층
-
Controller
// ProductRestController : 관심 상품 관련 컨트롤러
// SearchRequestController : 검색 관련 컨트롤러
-
Service
// ProductService : 관심 상품 가격 변경
-
Repository
// Product : 관심 상품 테이블
// ProductRepository : 관심 상품 조회, 저장
// ProductRequestDto : 관심 상품 등록하기
// ProductMypriceRequestDto : 관심 가격 변경하기
// ItemDto : 검색 결과 주고받기
:: 문자열에서 DTO로 바꾸기
- JSON 검색
- JSON In Java 클릭
- Usages 가장 많은 수 클릭
- Gradle 탭 복사
- build.gradle > dependencies 붙혀넣기
- Gradle reload
:: JSONObject, JSONArray 연습
JSONObject rjson = new JSONObject(result);
JSONArray items = rjson.getJSONArray("items");
for (int i=0; i<items.length(); i++) {
JSONObject itemJson = (JSONObject) items.get(i);
System.out.println(itemJson);
}
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 연장선)