inblog logo
|
MiracleCoding
    JAVAIntelliJSpring

    IntelliJ IDEA tasting, String(demo)

    Jan 24, 2024
    IntelliJ IDEA tasting, String(demo)
    ※IDEA 는 유료버전입니다. 맛보기 순대.
    새 프로젝트를 만들어 줍니다. Java, Gradle - Groovy, 21, Jar check! → [ Next ]
    New Project 옵션이 많이 늘었어요.
    New Project 옵션이 많이 늘었어요.
    저희는 3.2.2 버전을 사용합니다. 사진보고 전부 체크해주세요!
    notion image
    notion image
     
    최종으로 이렇게 7개 체크!하고 [Create]하세요!
    최종으로 이렇게 7개 체크!하고 [Create]하세요!
     
    처음으로 사용해 볼 메서드 입니다.
    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); } }
    실행!
    신기방기 😮 *Tomcat도 보이네요
    신기방기 😮 *Tomcat도 보이네요
    웹브라우저에서 http://localhost:8080/hello 로 접근할 수 있습니다.
    notion image
    notion image
    이번엔 두 엔드포인트가 같게 해봅니다.
    @GetMapping("/hello") // hello public void home(){ System.out.println("home 호출됨"); } @GetMapping("/hello") // 동일하죠 public String hello(){ String name = "홍길동"; return "<h1>hello"+name+"</h>"; }
    ❗❗실행중인 메인 클래스를 다시 실행해주세요❗❗
     
    이미 사용중인 엔드포인트라 터졌습니다! 똑똑하네요 🧐 바꿔주세요.
    이미 사용중인 엔드포인트라 터졌습니다! 똑똑하네요 🧐 바꿔주세요.
    ————홍길동 실행중————
    notion image
    이거 완전 html 아님
    이거 완전 html 아님
     
    랜덤한 수를 포함한 문자열을 반환하는 메소드를 추가해봐요~
    @GetMapping("/random") public String hello(){ Random r = new Random(); int num = r.nextInt(5)+1; return "<h1>Random"+num+"</h>"; }
     
    🎲
    /hello 처럼 동일한 대답이 온다면 정적 데이터로 캐싱해서 쓰는게 조흣ㅂ니ㅏ.
    /random은 동적 데이터니까 캐싱할 필요가 없죠
     
    ∴캐시하지 않음 (아직 어디쓰는 지 모르겠어요 추후에 사용하겠습니다~)
    Cache-Control: no-store
    HTTP 헤더 중 하나로, 브라우저나 다른 캐시 저장소에 응답의 복사본을 저장하지 말아야 함을 나타냅니다.
    Share article

    MiracleCoding

    RSS·Powered by Inblog