※IDEA 는 유료버전입니다. 맛보기 순대.
새 프로젝트를 만들어 줍니다.
Java, Gradle - Groovy, 21, Jar check! → [ Next ]

저희는 3.2.2 버전을 사용합니다. 사진보고 전부 체크해주세요!


![최종으로 이렇게 7개 체크!하고 [Create]하세요!](https://www.notion.so/image/https://prod-files-secure.s3.us-west-2.amazonaws.com/856bb7c3-0327-47da-91c8-dd13a27d6ed0/f110dcbe-2a0d-4692-8b37-3714d946d45a/Screenshot_72.png?table=block&id=f3beda45-a0b4-41f5-bcae-405607f49a47&cache=v2)
처음으로 사용해 볼 메서드 입니다.
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
public HelloController(){
System.out.println("HelloController 컴포넌트 스캔됨");
}
@GetMapping("/hello")
public void home(){
System.out.println("home 호출됨");
}
}
IOC (Inversion of Control = 제어의 역전) 오늘 꼭! 알아가셔야 합니다.
객체를 생성하려면 @RestController 어노테이션을 사용하셔야 합니다. IOC가 자신의 영역(static)에 자료형을 담습니다. 원래 개발자가 객체를 생성하지만 spring이 하는 겁니ㅏㄷ.
메인 클래스 입니다.
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

웹브라우저에서 http://localhost:8080/hello 로 접근할 수 있습니다.


이번엔 두 엔드포인트가 같게 해봅니다.
@GetMapping("/hello") // hello
public void home(){
System.out.println("home 호출됨");
}
@GetMapping("/hello") // 동일하죠
public String hello(){
String name = "홍길동";
return "<h1>hello"+name+"</h>";
}
❗❗실행중인 메인 클래스를 다시 실행해주세요❗❗

————홍길동 실행중————


랜덤한 수를 포함한 문자열을 반환하는 메소드를 추가해봐요~
@GetMapping("/random")
public String hello(){
Random r = new Random();
int num = r.nextInt(5)+1;
return "<h1>Random"+num+"</h>";
}
/hello 처럼 동일한 대답이 온다면 정적 데이터로 캐싱해서 쓰는게 조흣ㅂ니ㅏ. HTTP 헤더 중 하나로, 브라우저나 다른 캐시 저장소에 응답의 복사본을 저장하지 말아야 함을 나타냅니다.
/random은 동적 데이터니까 캐싱할 필요가 없죠
∴캐시하지 않음 (아직 어디쓰는 지 모르겠어요 추후에 사용하겠습니다~)
Cache-Control: no-store
Share article