공부하자/Spring🍃

[SpringBoot] spring boot 설치 및 구조, 프로젝트 설정, @어노테이션 (7/13)

snbrin 2022. 7. 13. 14:54

 

 


07/13 수 수업 메모

 

오늘 할 일

  • Spring Boot 4.13.1버전 설치
    • sts version 3.9.13(지금까지 쓰던 spring)
      • spring legacy project -MVC로 프로젝트 생성
      • 빌드도구 maven - jar파일을 자동으로 주입하는 역할
    • sts version 4
      • 4버전은 빌드도구가 gradle임
      • 안드로이드 스튜디오의 빌드 도구도 gradle

Boot 프로젝트 만들기

1. File - New - Spring Starter Project

 

2. project Name - Type - Java Version - Packaging - Package 확인 및 설정

 

  • 패키징은 프로젝트 완성 후 파일 전체를 '어떤 형식으로 압축할 것인가'

packaging - jar

  • packaging이 jar인 경우
  • 실행할 때 파일명.jar
  • 톰캣 서버와 소스가 같이 압축되어 있음

packaging - war

  • packaging이 war인 경우
  • 서버를 내장해서 압축한 것이 아닌 서버를 제외하고 코드만 압축되어 있음
  • 실행할 때 프로젝트를 서버에 올리고, 서버를 켜고, 실행시키는 방식
  • 지금까지 했던 방식

 

3. 필요한 Dependencies 선택


 

gradle 아이콘 귀.여.워

 

Boot 시작 신기하당


 

port번호 설정

 

어노테이션이 안될 때 'web'이 있는지 확인


  • @Controller - 서블릿 역할을 하는 클래스로 만듦
    • <bean> 에 자동 등록됨
    • 스프링의 컨테이너를 사용하려면 bean에 등록되어야 하기때문에
    • 그래서 원래는 <bean> 태그로 등록을 했었는데
    • @Controller를 사용하면 태그 사용하지 않고 등록됨
  •  @RequestMapping(value="/hello") or ("/hello") -> 'value=' 생략
    • web 구조에서 클라이언트가 요청하는 주소를 지정함
  • @ResponseBody
    • 메소드의 리턴값을 리턴타입으로 서버의 응답으로 삼겠다는 의미
  • @RequiredArgsConstructor
    • lombok 어노테이션
    • 명시적 생성자를 자동으로 만들어줌
    • 단, 필드는 final 필드여야 함

서버 자동 재실행 설정하기

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools/2.7.1

 

Maven Repository: org.springframework.boot » spring-boot-devtools » 2.7.1

Spring Boot Developer Tools org.springframework.boot spring-boot-devtools 2.7.1 // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools implementation group: 'org.springframework.boot', name: 'spring-boot-devtools', version: '2.

mvnrepository.com

gradle 선택 - 코드 복사 


  • Live Reload 설정
    • 크롬 브라우저에서 자동으로 리로드 해주는 역할
    • 브라우저를 refresh하는 도구
    • 크롬 웹스토어에서 '크롬에 추가하기'
  • Lombok 설치
    • VO에서 생성자, setter,getter 만들었던 작업을 자동으로 해주는 역할
    • 필드만 만들어두면 자동으로 만들어줌
    • springboot 밖에서 세팅해야함! boot에서만 쓰는 게 아니라서, 별도의 프레임워크임!
    • 순서
      • lombok 사이트에서 lombok.jar 파일 다운로드
      • lombok 설치
      • lombok에 적용할 sts 툴 선택
      • 스프링 부트에서 DI 하기
    • https://projectlombok.org/download
 

Download

 

projectlombok.org

  • 다운로드 후 cmd에서 설치
    • 다운받은 폴더가 있는 경로로 이동 
    • java -jar lombok.jar

sts 4버전 exe파일 선택하고 install
https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.24

compileOnly - 컴파일 단계에서 필요한 jar파일


Spring Boot 구조 파악하기

  • src/main/java
    • 자바파일을 쓰는 곳
    • Controller, Service, Dao, Vo(Dto)
    • Controller -> Service -> Dao -> Vo -> (Dto) 순서로 보냄
    • 비즈니스(Controller) 로직 파일
    • 엔티티(Vo(Dto)), 서비스(Service) 파일
    • 데이터베이스 연결(Dao) 파일
    • ~Application.java
      • 스프링 부트의 모든 설정이 관리되는 시작 파일
      • main
      • @SpringBootApplication은 프로젝트 시작 클래스를 지정함
  • src/main/resources
    • 자바를 제외한 파일(html,css,js 환경 파일 등) 저장
    • 주로 이용하는 폴더명
      • templates
        • 템플릿 파일을 저장하는 곳
        • html파일 형태로 자바 객체와 연동되는 파일 등(xml, properties 등)
      • static
        • style sheet(.css), javascript, image파일 등을 저장하는 곳
      • application.properties 파일
        • 프로젝트의 환경 설정 파일
        • 환경설정 해주는 파일의 확장자 : properties, yaml(yml)

properties vs. yml

  • src/test/java
    • src/main/java에 기능을 넣기 전에 부분적으로 테스트가 필요할 때 사용됨
    • Junit와 spring boot의 테스팅 도구를 사용하여 서버를 실행하지 않고 부분적으로 테스트 할 수 있는 곳
    • Junit은 테스트를 도와주는 프레임워크
  • build.gradle 파일
    • 빌드 도구인 gradle의 환경설정을 위한 파일
    • gradle은 그루비(?)를 기반으로 한 빌드 도구(Ant, Maven과 같은 이전시대의 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 것)