[점프 투 스프링부트] 1-04 스프링부트 맛보기 / 1-05 스프링부트 도구 설치하기

dwkim·2023년 3월 28일
0
package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World";
    }
}

클래스명 위에 적용된 @Controller 애너테이션

  • HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미
  • 이 어테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다.

메서드에 적용된 @GetMapping 애너테이션

  • 요청된 URL과의 매핑을 담당

  • http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 실행됨을 의미

  • /hello URL과 hello 메서드를 매핑하는 역할을 한다.

    • URL명과 메서드명은 동일할 필요는 없다. 즉 /hello URL일 때 메서드명을 hello가 아닌 hello2와 같이 해도 상관없다.
    • Get 방식의 URL 요청은 GetMapping을 사용하고 Post 방식의 URL 요청은 PostMapping을 사용한다.

@ResponseBody 애너테이션

  • hello 메서드의 응답 결과가 문자열 그 자체임을 나타냄

  • hello 메서드는 "Hello World" 라는 문자열을 리턴하므로 출력으로 "Hello World" 문자열이 나갈 것이다.

    • 응답 결과는 이처럼 단순한 문자열 보다는 HTML 파일과 같은 템플릿을 주로 사용한다.

@Getter, @Setter 애너테이션

  • Getter, Setter 메서드를 추가하지 않아도 사용 가능하게 해줌

package com.mysite.sbb;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Getter
public class HelloLombok {

    private final String hello;
    private final int lombok;

    public static void main(String[] args) {
        HelloLombok helloLombok = new HelloLombok("헬로", 5);
        System.out.println(helloLombok.getHello());
        System.out.println(helloLombok.getLombok());
    }
}

@RequiredArgsConstructor 애너테이션

  • 해당 속성을 필요로하는 생성자가 롬복에 의해 자동으로 생성된다. (※ final이 없는 속성은 생성자에 포함되지 않는다.)

  • final을 적용했기 때문에 @Setter는 의미가 없으며 Setter 메서드들도 사용할수 없다.

    • final은 한번 설정한 값을 변경할수 없게 하는 키워드이다.
  • 의존성 주입(Dependency Injection)시 사용된다.

    • DI(Dependency Injection) : 스프링이 객체를 대신 생성하여 주입한다.





출처: https://wikidocs.net/160444

profile
예비 백엔드 개발자

0개의 댓글