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
애너테이션
메서드에 적용된
@GetMapping
애너테이션
요청된 URL과의 매핑을 담당
http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 실행됨을 의미
/hello URL과 hello 메서드를 매핑하는 역할을 한다.
@ResponseBody
애너테이션
hello 메서드의 응답 결과가 문자열 그 자체임을 나타냄
hello 메서드는 "Hello World" 라는 문자열을 리턴하므로 출력으로 "Hello World" 문자열이 나갈 것이다.
@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 메서드들도 사용할수 없다.
의존성 주입(Dependency Injection)시 사용된다.