본문 바로가기
스프링 (Spring)/SelectShop Project

SelectShop - 관심상품 조회하기

by 후닝훈 2021. 8. 2.
반응형

1. Timestamped 클래스 생성

- models 패키지를 만든다.

 

Timestamped.java

@Getter // get 함수를 자동 생성
@MappedSuperclass // 멤버 변수가 컬럼이 되도록 함
@EntityListeners(AuditingEntityListener.class) // 변경되었을 때 자동으로 기록
public abstract class Timestamped {
    @CreatedDate // 최초 생성 시점
    private LocalDateTime createdAt;

    @LastModifiedDate // 마지막 변경 시점
    private LocalDateTime modifiedAt;
}

 

Application

@EnableJpaAuditing // 시간 자동 변경이 가능하도록 함
@SpringBootApplication // 스프링 부트임을 선언.
public class Week04Application {
    public static void main(String[] args) {
        SpringApplication.run(Week04Application.class, args);
    }
}

 

2. Product 클래스 생성

(1) 요구조건

- title

- image

- link

- lprice

- myprice

 

(2) Product 클래스

@Getter // get 함수를 일괄적으로 만들어줌.
@NoArgsConstructor // 기본 생성자를 만들어줌
@Entity // DB 테이블 역할을 함.
public class Product extends Timestamped{

    // ID가 자동으로 생성 및 증가
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Id
    private Long id;

    // 반드시 값을 가지도록 함.
    @Column(nullable = false)
    private String title;

    @Column(nullable = false)
    private String image;

    @Column(nullable = false)
    private String link;

    @Column(nullable = false)
    private int lprice;

    @Column(nullable = false)
    private int myprice;
}

 

3. Product Repository

public interface ProductRepository extends JpaRepository<Product, Long> {
}

 

4. ProductRestController

- 컨트롤러 패키지를 만든다.

@RequiredArgsConstructor // final로 선언된 멤버 변수를 자동으로 생성
@RestController // JSON으로 데이터를 주고받음을 선언
public class ProductRestController {

    private final ProductRepository productRepository;

    // 등록된 전체 상품 목록 조회
    @GetMapping("/api/products")
    public List<Product> getProducts() {
        return productRepository.findAll();
    }
}

 

5. ARC로 정상동작 확인

 

반응형

댓글