- 빌드하고 실행하기
- 정적 컨텐츠
- MVC와 템플릿 엔진
- API
GitHub - pythaac/Spring_tutorial: These are test tutorial codes between react native(android) and spring boot
These are test tutorial codes between react native(android) and spring boot - GitHub - pythaac/Spring_tutorial: These are test tutorial codes between react native(android) and spring boot
github.com
d16ad6f0bd90cab68ace06d54d2f9184179c0aba
<스프링 입문 강의 – 5강 빌드하고 실행하기>
l 콘솔창으로 빌드하기
- >> gradlew build
- >> cd build/libs
- >> java –jar springBasic-0.0.1-SNAPSHOT.jar
l UnsupportedClassVersionError
- https://javaalmanac.io/bytecode/versions/
- build한 class file version : 55.0 (Java 11)
- java runtime version : 52.0 (Java 8)
- build.gradle > sourceCompatibility를 변경(11 -> 8)하여 해결
l 빌드가 잘 안될시
- >> gradlew clean build
<스프링 입문 강의 – 6강 정적 컨텐츠>
l 웹을 개발한다는 것
- 정적 컨텐츠 : 서버의 별도 처리 없이 웹브라우저에 그대로 내려줌
- MVC와 템플릿 엔진 : 서버에서 동적으로 바꿔서 내려줌(jsp/php를 템플릿 엔진이라고 함)
- API : json으로 데이터를 내려줌 or 서버끼리 통신할 때 사용
l 정적 컨텐츠 디렉토리
- resources/static
l 정적 컨텐츠 접근
- localhost:8080/$파일명 : hello-static.html
- 1) Spring boot가 컨트롤러를 먼저 찾아봄
- 2) 없으면 정적 컨텐츠를 찾음
<스프링 입문 강의 – 7강 MVC와 템플릿 엔진>
l Model / View / Controller
- 예전(jsp)에는 Controller가 분리되지 않고 View에서 모두 처리
- 현재 View는 화면과 관련된 일만, Controller는 비즈니스 로직만
l Query String -> Controller -> Model -> View
- request에 QueryString으로 name 전송
- Controller에서 @RequestParam으로 name 수신
- Model에 addAttribute로 “name”에 name 매핑
- View에서 ${name}에 name을 넣어 response
<스프링 입문 강의 – 8강 API>
l API
- View가 아닌 데이터를 직접 내림
l @ResponseBody
- Controller에 @ResponseBody를 추가해야함
- http response body에 추가한다는 의미
- 템플릿은 ViewResolver에 던지는 반면
- HttpMessageConvert가 동작
- String이면 StringHttpMessageConverter
- 객체면 MappingJackson2HttpMessageConvert (Jackson은 객체를 JSON으로 바꾸는 라이브러리)
l Controller에서 객체를 반환
- 객체를 반환하면 default가 JSON으로 response
l 자바 빈 규약 (Java Bean Convention)
- Java bean : 하나 이상의 객체를 단일 표준화된 객체로 캡슐화하는 클래스
- default constructor를 가져야 함 (argu가 없는 생성자)
- naming convention에 따른 properties(get, set, is, to 등)에 접근할 수 있어야 함
- serializable이어야 함
'프레임워크 > Spring' 카테고리의 다른 글
[인프런][스프링 입문] 13~16 강 (0) | 2022.03.04 |
---|---|
[인프런][스프링 입문] 9~12 강 (0) | 2022.02.07 |
[인프런][스프링 입문] 1~4 강 (0) | 2022.02.04 |
[Spring] 문서의 요소 콘텐츠에서 부적합한 XML 문자 (0) | 2022.01.28 |
[Spring] 예외 처리시 Throws vs try-cat-finally (0) | 2022.01.18 |