Posts [개발자 블로그] Spring Boot 실습
Post
Cancel

[개발자 블로그] Spring Boot 실습

1) 프로젝트 생성

스크린샷 2020-06-09 오후 9 00 41
스크린샷 2020-06-09 오후 9 01 07

2) 프로젝트 구조

스크린샷 2020-06-09 오후 9 05 33

  • src/main/java -> java코드가 들어가는 부분
  • src/main/resources
  • static -> css, javascript, 이미지와 같은 정적인 파일들
  • templates -> html파일
  • application.properties -> 설정 파일

  • jar로 패키징할 경우 /src/main/webapp을 사용하지 마라
    스크린샷 2020-06-09 오후 9 11 24

3) pom.xml

스크린샷 2020-06-09 오후 9 12 31
스크린샷 2020-06-09 오후 9 12 38

  • 아래를 꼭 넣어줘야함
    스크린샷 2020-06-09 오후 9 12 46

  • Spring Boot Maven Plugin 메이븐 속 스프링부트를 서포트 해준다
  • 이 플러그인을 통해서 jar나 war파일로 패키징 할 수 잇게 해주고 실제로 이를 실행시켜줄 수 있다.
  • 아래와 같이 사용 할 수 도 있다.
1
2
mvn package (패키징 할 때)
mvn spring-boot:run (이런식으로 실행시켜줄 수도 있다.)
  • 로컬에 maven이 설치 안되있을 경우 아래와 같이 해줘야한다.
1
2
mvnw package<br>
mvnw spring-boot:run<br>

4) Application Endpoints

스크린샷 2020-06-09 오후 9 20 05

  • @SpringBootApplication = @EnableAutoConfiguration + @ComponentScan + @Configuration
  • @EnableAutoConfiguration -> Auto Config를 활성화 시켜준다.
  • @ComponentScan -> 이 클래스가 있는 패키지 및 하위패키지들을 모두 스캔 해 준다.
  • @Configuration -> 설정파일에 관련 클래스임을 지정
  • Run을 수행하게 되면 톰캣이 시작되면서 어플리케이션 시작되게 되어있음

5) Spring MVC

스크린샷 2020-06-09 오후 9 24 15

  • thymeleaf -> sever-side에서 돌아가는 엔진

6) Spring Security

  • pom.xml에 라이브러리 추가
    스크린샷 2020-06-09 오후 9 27 04

  • security 관련 설정
    스크린샷 2020-06-09 오후 9 27 37
    스크린샷 2020-06-09 오후 9 28 21

7) Application.properties

  • application관련 설정 파일
    스크린샷 2020-06-09 오후 9 34 00

8) Application Run

스크린샷 2020-06-09 오후 9 35 55

실습

스크린샷 2020-06-09 오후 9 38 23
스크린샷 2020-06-09 오후 9 39 25
스크린샷 2020-06-09 오후 9 39 34
스크린샷 2020-06-09 오후 9 40 45

9) JPA

스크린샷 2020-06-09 오후 9 51 04
스크린샷 2020-06-09 오후 9 53 40

  • CrudRepository라는 인터페이스에 클래스이름과 primary key타입만 만들어주면 DAO를 전부 다 제공해준다.
  • 제공된 CrudRepository만 넣어주면 자동적으로 다 만들어주고 추가적인 메소드만 넣어주면 된다.
    스크린샷 2020-06-09 오후 9 56 24

  • Spring Data JPA는 아래 세 인터페이스를 포함한다.
    • 1) CrudRepository -> Crud관련 기능
    • 2) PagingAndSortingRepository -> 레코드가 많을 경우엔 페이지 단위로 나누고 정렬해주는 기능
    • 3) JpaRepository -> 추가적인 기능들을 몇 가지 더 제공
  • Spring data Jpa 사용 안할 경우
    스크린샷 2020-06-09 오후 9 58 28

  • Spring data Jpa 사용 할 경우
    스크린샷 2020-06-09 오후 9 59 01

  • 아래와 같이 추가적인 메소드를 제공해 줄 수 있다.
  • 메소드 이름을 통해서 자동적으로 로직이 수행되도록 되어있다.
    스크린샷 2020-06-09 오후 10 01 06

  • 이와 같이 Spring data JPA를 통해서 클래스이름과 키의 타입만 적어주면 자동적으로 스프링에 의해 코드가 만들어진다.
This post is licensed under CC BY 4.0 by the author.