[SpringBoot]프로젝트 생성, API

끄적끄적·2023년 3월 15일
0
post-thumbnail

📌 Spring Boot 프로젝트 생성하기

👀 Spring Boot가 뭐죠?

”자바로 api를 개발하는데 편리한 여러가지 기능들을 제공해주는 프레임워크”

1. 📁 SpringBoot 프로젝트 생성

  • Spring Web
  • Thymeleaf

2. 🚗 프로젝트 실행

  • 스프링 : 하나의 java 프로젝트이므로 실행 바로 가능
  • localhost:port번호 ( 8080 )
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

📖 (연습문제) api 하나 뚝딱

  • @(annovation) : 기능이 있는 주석

step 1. @RestContoller

  • 클래스 만들기
@RestController
public class TestController {

}

step 2. @GetMapping

  • 메소드 만들기
@RestController
public class TestController {
    @GetMapping("api/test")
    public String test() {
        return "test";
    }
}

step 3. application 재실행 + localhost:8080/api/test 로 접속

📖 (추가문제) intelliJ가 아닌 jar파일로 빌드하고 실행해봅시다.

Step 1. 빌드하기

  • JAVA_HOME 경로가 이상하게 되어있어서 다시 바꿔주었다.
  • cd '프로젝트 경로' > set JAVA_HOME='파일 위치 경로' > gradlew build

Step 2. jar 파일로 실행하기

  • /build/libs 파일 생겼는지 확인하기
  • cd /build/libs 경로까지 추가 > java -jar 'jar파일명'.jar > 실행

✅ 문자열 리턴하는 GET api 생성하기

  • localhost:8080/name 호출했을 때 본인 이름을 리턴하는 api 생성하기
@RestController
public class TestController {
    @GetMapping("api/xxoznge")
    public String test() {
        return "xxoznge";
    }
}

✅ query parameter로 입력받은 값을 리턴하는 GET api 생성하기 참고

  • 쿼리 파라미터로 name=본인이름 을 입력받아 그대로 리턴하는 api 생성하기
  • 경로 확인하기 !
@RestController
public class ParameterController {

    @GetMapping("api/xxoznge1")
    public String test(@RequestParam String name){
        return "내 이름은 "+name;
    }
}

✅ (심화) lombok 의존성 추가하고 로그 찍어보기

  • 롬복이란 로깅 기능과 다양한 코드의 자동화를 제공하는 라이브러리

📕 로그, 로깅 이란?

  • 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동.

  • 출력 방법 ?
    System.out.println() 이용
    로깅 라이브러리 이용 (ex. slf4j) -> 이 방법만 쓸 예정 !

Step 1. build.gradle에서 lombok 의존성 추가

implementation 'org.projectlombok:lombok'
  • build.gradle > 코드 추가 > reload

Step 2. lombok 설치 확인

  • 재실행 필수 ! > Invalidate Caches / Restart..> Invalidate and Restart

Step 3. 위에서 만든 메소드들 중 하나 내부에서 로그를 찍어보세요.

  • @Slf4j를 사용하여 편하게 로그찍기
@Slf4j
public class Slf4jSample {
    public static void main(String[] args){
        String value1= "1번값";
        String value2= "2번값";
        log.info("-------- Log 테스트 --------");
        log.info("1번의 값은 : "+value1+"2번의 값은 : "+value2);
        log.info("1번의 값은 : {} 2번의 값은 : {}",value1, value2);
    }
}

🔥 @Slf4j > error: cannot find symbol


👀 해결방법 1 : Enable annotation processing

  • preferences > vuild, execution, deployment > compiler > annotation processors > enable annotation procession 체크
  • 대실패


👀 해결방법 2 : dependencies 추가

  • 대실패

👀 해결방법 3 : 물어보기 !!!!!!!

  • 도저히 못하겠어서 질문드렸는데 바로 답변해주셨다 !!
    : implementation 삭제 > compileOnly / annotationProcessor 추가해보기

🔥 결과는 뜨는 데 한글이 없네 ? -> 또 다시 해결방법 찾기

👀 해결방법 1 : Lombok utf-8 이 문제?

  • 세 칸 모두 utf-8로 바꿔줬다.
    : 실패...~

👀 해결방법 2 : Gradle ?

Build방식이 Gradle로.... > Intellij IDEA 로 바꾸니까 해결 완료 !!!! 힘들었다...

📣 최종 결과 !!

0개의 댓글