RESTful Web Service 개발 - Java Persistence API 사용_1

2023. 1. 25. 22:27·공부/Spring
반응형

 

 

Spring Boot를 이용한 RESTful Web Services 개발

Java Persistence API 개요

  • JPA
    • Java Persistence API의 약자
    • 자바 ORM 기술에 대한 API 표준 명세
    • 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
      • 인터페이스이기 때문에 클래스 내부에는 메서드 선언 밖에 없고 기능을 사용하려면 구현체를 만들어야한다.
    • EntityManager를 통해 CRUD 처리
  • Spring Data JPA
    • Spring Module
    • JPA를 추상화한 Responsitory 인터페이스 제공

 

 

JPA 사용을 위한 Dependecy 추가와 설정

JPA 라이브러리 추가

  • build.gradle

스프링 프로젝트를 생성했을 때 dependecies에서 JPA와 h2를 추가했다면 build.gradle에 이미 아래 코드가 있을 것이다.

// JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

// h2
runtimeOnly 'com.h2database:h2'

 

  • application.yml
spring:
  messages:
    basename: messages
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  jpa:
    show-sql: true
  h2:
    console:
      enabled: true

 

서버 재실행 후 크롬에서 확인. (http://localhost:8088/h2-console)

전 시간에 배웠던 Security 관련 소스를 없애아지먄 id, pw가 정상적으로 들어갔는데도인식하지 못한다.

Security와 관련된 소스를 다 주석처리해주면 된다. 아니면 SecurityConfig에 몇가지 설정만 추기하면 된다.

  • SecurityConfig.java
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/h2-console/**").permitAll();
    http.csrf().disable();
    http.headers().frameOptions().disable();
}

 

서버 재실행 후 크롬을 확인한다.

여전히 404

이리 저리 검색해본 결과 결국엔 application.yml에서 잘못된 설정이 있거나, depth를 안맞추고, 라이브러리를 하나 덜 추가해서 그렇다.

  • build.gradle
implementation 'org.springframework.boot:spring-boot-starter-jdbc'

 

  • application.yml
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/h2-console/**").permitAll();
    http.csrf().disable();
    http.headers().frameOptions().disable();
}

 

  • application.yml
spring:
  messages:
    basename: messages
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  jpa:
    show-sql: true
  h2:
    console:
      enabled: true
      path: /h2-console
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:mem:testdb
    username: sa 
    password:  

 

 

서버 재실행  크롬 확인

Test Connetion을 클릭하면 또 에러가 발생했다. 뭐가 문제일지 생각해보다가 콘솔을 보니 Security 인증이 문제였다. 저번에

WebSecurityConfigurerAdapter 클래스를 상속 받지 않았었는데 이게 문제인가 싶어 상속받아보니 정상적으로 실행됐다.

 

 

아.. 강의는 되게 짧은데 예전 springboot 버전을 사용한 강의라 에러 해결하는데 시간이 너무 오래걸린다...

이것도 또 하나의 경험이겠지. 다음에 마저 해야겠다.


- 출처 : 인프런 Spring Boot를 이용한 RESTful Web Services 개발 강의

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/Spring' 카테고리의 다른 글
  • RESTful Web Service 개발 - Java Persistence API 사용_3
  • RESTful Web Service 개발 - Java Persistence API 사용_2
  • RESTful Web Service 개발 - Spring Boot API 사용
  • RESTful Web Service 개발 - RESTful Service 기능 확장
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    springboot
    IT
    에러해결
    넥사크로
    자바스크립트
    토이프로젝트
    알고리즘
    코딩테스트
    MSA
    프론트엔드
    RESTful
    egov
    기출문제
    react
    SpringBoot를 이용한 RESTful Web Service 개발
    스프링부트
    전자정부프레임워크
    Spring
    개발자
    토비의스프링부트
    QueryDSL
    운영체제
    프로그래머스
    JPA
    인프런
    SQL
    oracle
    방통대
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
RESTful Web Service 개발 - Java Persistence API 사용_1
상단으로

티스토리툴바