ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • spring 입문 정리
    spring 2022. 1. 29. 02:39

    java 11 , IDE :  Intellij 설치 =>  스프링 부트를 이용해 프로젝트 생성!(https://start.spring.io/)  

    ( java 15버전 쓰니까 gradle.build에서 에러 발생)

    spring initializr

    project : Gradle Project  , java, spring Boot : 2.6.3 +)snapshot(평가판) 

     

    java = 11version

    dependecies : spring web , thymeleaf 추가 

    => generate 

    spring 압축폴더 생성후 -> 압축 풀고   intellij에서 압축푼 폴더에서 build.gradle 열기

    실행- > spring boot 버전(2.6.3) 이 나오고  Tomcat 8080으로 연결

    localhost:8080으로 들어가면 error page(아무것도  mapping 하지 않음)

     

    springboot 는 static/index.html 을 추가하면 Welcome page 기능을 제공한다.

    // 원리는 spring.io 로 들어가서 project document로 원리 탐색 

     

    템플릿엔진 : thymeleaf 

     

    java 파일로 controller 폴더 생성 controller 폴더안의 HelloController.java 생성 

    @Controller 지정(컨트롤러의 역할할 수 있도록)

    @GetMapping("hello") : localhost:8080/hello :   밑줄부분의 gethosting 방식으로 연결

    model을 인수로 받아서 model.addAttribute(data_name, data_value)로 .html 파일로 data 전달

    return "hello"를 마지막에 return함으로 templates 폴더안의 return 한 이름과 같은  html 페이지 제공(hello.html)

     

     

     

    스프링 웹 개발 기초 

    1. 정적 컨텐츠

     

    2 .  MVC 와 템플릿엔진(thymeleaf 사용)

     

    3. API 사용 : view 없이 바로  return

     

     

    <정적 컨텐츠>

    resources/static 폴더안의 hello-static.html 생성 

    localhost:8080/hello-static.html 들어가면 웹페이지가 static.html 화면 생성(정적 컨텐츠와 관련된 컨트롤러가 없기 때문에 .html을 붙여줘야 한다.)

    정적(static) vs 동적(templates)

     

    <mvc 와 템플릿 엔진>

    model view(화면) controller 분리

     

     

    @GetMapping("hello-mvc") : localhost:8080/hello-mvc (mappping)  / @RequestParam이 있으므로 name 의 값을 줘야한다. 안주면 error page 

    예를 들어 localhost:8080/hello-mvc?name=spring spring 데이터 전송 

    get방식의 데이터 전송

    ? : url이 끝나고 데이터 표현의 시작점을 알리는 기호 

    ?name = spring  // key : name . value : spring

    자세한 건 : https://mommoo.tistory.com/60 설명을 참고

     

    return hello-temlplate  => resources/templates에 있는 hello-template.html을 실행

    hello-template.html 의 ${name}속에 spring 전달

     

     

    <API>

     

    @ResponseBody 를 사용하면 api 방식으로  MVC방식과 달리 viewResolver(= Controller의 요청으로 부터 templates폴더에서 html을 연결해주는 역할)를 사용하지 않음

     

    @ResponseBody 는 2가지 방법이 있다.

    • ResponseBody 문자 반환 = > 웹페이지에서 문자그대로 출력(html 형식 x )
    • ResponseBody 객체 반환 = > 객체가  JSON으로 변환되어 웹페이지 출력

    @ResponseBody 를 통해 문자는 StringConverter 로 전달 / 객체는 JSONConverter로 전달

    json형식 

     

    'spring' 카테고리의 다른 글

    스프링 핵심원리  (0) 2022.02.09
    spring 입문  (0) 2022.02.01
Designed by Tistory.