[스프링부트 블로그 프로젝트] 15, 16, 17강

오젼·2024년 2월 1일
0

15강 maven이란

프로젝트 별로 library를 각각 다운 받아서 가지고 있는 건 불필요함

그렇다고 한 곳에 저장해두고 각 프로젝트에서 해당 위치에 있는 라이브러리를 공통으로 쓴다면?
배포를 할 때, 혹은 다른 환경에서 작업을 할 때 프로젝트 안에는 해당 라이브러리가 없으니까 또 불편함이 생김

그래서 maven을 사용하면 뭐가 좋냐

pom.xml에 필요한 라이브러리를 적어놓기만 하면 알아서 중앙저장소에서 라이브러리들을 .m2 repository에 다운 받고 자동으로 빌드까지 해줌. 배포할 때도 pom.xml 파일만 같이 넣어서 배포해주면 됨. maven만 설치해주면 라이브러리 관리가 자동으로 되는 거임

16강 lombok세팅 및 사용해보기

pom.xml에서 lombok 관련 부분을 봐본다. 보면 org.projectlombok 경로에 lombok이 빌드가 된다는 것을 알 수 있음.

~/.m2/repository/org/projectlombok 에 가보면 lombok이 다운 받아져 있는 것을 볼수 있음.

설치돼있는 lombok jar파일을 눌러 실행해줘야 한다.
maven은 빌드해주는 역할까지만 하는 것. 실행은 우리가 해줘야 함.

오잉 근데 난 그렇게 하는 게 아니라(intellij로 하고 있기 때문에)
이미 lombok 관련 세팅이 돼있는 거였다

IntelliJ 2020.03 이후 버전에서는 기본 Plugin으로 Lombok이 설치되어 있다.

https://inpa.tistory.com/entry/IntelliJ-💽-Lombok-설치-방법-오류-해결

실제 사용

오오.. 이렇게 사용해주는 거였다.
어노테이션으로 코드를 간결하게 해줄 수 있는 거였음

원래는 getter, setter를 밑에 코드로 쭉 만들어줬어야 했는데 lombok을 이용하면 어노테이션만 써주면 됨

  • @Data
    getter, setter
  • @AllArgsConstructor
    파라미터 모두 있는 생성자

  • @NoArgsConstructor
    기본 생성자. 파라미터 아무것도 없는 생성자

  • @Builder
    빌더패턴을 쓸 수 있게 해줌
    원랜 a,b,c 멤버변수가 있으면 a만 사용하는 생성자, b만 사용하는 생성자, a,c만 생성하는 생성자 등
    여러 조건에 따라 생성자들을 만들었어야 하는데
    @Builder를 쓰면 .builder() 을 사용해서 빌더패턴을 사용해줄 수 있음

17강 yml설정하기

설명

https://www.inflearn.com/questions/16184/yaml파일-이란-무엇인가요

규칙

키:(스페이스)밸류

들여쓰기는 무조건 스페이스 두 개

application.yml

web.xml(설정을 위한 설정파일), root-context.xml(한 번만 new하면 되는 애들), servlet-context.xml(계속 new 해줘야 하는 애들)의 합본

스프링부트에선 위 구분이 필요 없다. 그냥 application.yml에 모든 설정들을 해주면 됨

https://getinthere.tistory.com/20
위 블로그에 있는 yml파일 복사하기

!! use-new-id-generator-mappings: false 는 빼기
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide/b7e70d3f286735f2df53fe1361dcb56e78428e84
스프링부트 3.X부터 제거돼서 해당 기능은 빼고 복사하기
원래 jpa에서 기본 제공하는 넘버링 전략을 따라가지 않기 위해 사용해줬는데 이제 어차피 기본 제공이 안 되나 봄

server

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.server

server:
  port: 8000
  servlet:
    context-path: /blog
    encoding:
      charset: UTF-8
      enabled: true
      force: true

서버 주소 설정해줌

spring.mvc

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.web

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

이 경우 return에 home.html을 적었지만 /WEB-INF/views/home.html.jsp 를 반환하게 해주는 거임

저렇게 파일을 리턴하는 경우 @Controller 를 써야 한다. (@RestController는 데이터)

그리고 jsp 파일은 spring에서 기본지원이 아니기 때문에 pom.xml에 jsp 템플릿 엔진 디펜던시를 추가해줘야함.

그리고 jsp 파일은 정적파일이 아니라 컴파일이 필요한 파일이기 때문에 src/main/webapp/WEB-INF/views/에 넣어줘야 함.

위에서 설정 안 해줬을 때 기본경로는 src/main/resources/static/인데 여기 있는 파일들은 정적 파일들만 올바르게 리턴할 수 있음.

0개의 댓글