Springboot

Spring boot/실습 response의 이해

25G 2021. 6. 23. 17:15

컨포넌트 스캔 기준

이유: IOC컨테이너에 객체 등록

위치:com.cos.secondapp

 

스프링에서 IOC컨테이너는 어노테이션을 가지고 있는 java파일을 찾아내고 그 어노테이션의 주소가 있는 함수를 실행한다.

POST방식으로 자원요청->디스패쳐가 실행돼서 요청을 가로챈다. -> IOC 스캔-> 해당 자원(View)을 가지고 있는 함수 호출 이때 함수에 매개변수가 있다고 한다면 이때 디스패처가 해당 요청 시 받은 요청 해더에 있는 컨텐트 타입과 데이터를 가지고 와서 해당 매개변수에 파싱 해서 주입시켜준다 함수가 실행되면서 매개변수를 주입시켜 주는 것이다

진짜 마법 같은 일이 스프링을 해내는 것이다. 만약에 해당 자원을 찾지 못했다면  null을 반환하는 것이다.

 

response 응답할 때 관여하는 기능이 있다.

-MessageConverter (데이터 반환) @RestController (Json반환) 일 때 등장

-ViewResolver (View반환(jsp파일)) @Controller(HTML반환) 일때 등장

 

templates폴더

여기에 탬플릿 언어들로 구성된 파일들을 넣어놓고 서버와 연결시킬 수 있다.

 

만약에 탬플릿 엔진 라이브러리가 없을 때 기본적으로 찾아가는 폴더가 static폴더이다. 이건 스프링의 또 하나의 규칙이다

탬플릿 엔진이 있으면 viewResolver를 찾아간다.

현제 버전에서는 JSP라이브러리를 찾는 라이브러리를 지원하지 않기 때문에 따로 설정을 해야 한다.

jsp에서 web-inf폴더는 외부 접근 불가 폴더이다

근데 스프링에선 web-inf밑에 jsp파일을 모아놓는다 그 이유는 jsp파일에 직접 접근을 막기 위해서 이다.

즉 MVC패턴을 강제하기 위해서

 

이제 jsp언어를 알아볼 수 있는 라이브러리를 다운로드하아야 한다

 

여러 가지 버전들이 있는데 서버의 버전과 라이 버리의 버전을 꼭 맞춰줘야 한다

즉 우리는 jasper라이브러리와 스프링 내장 톰캣의 버전을 맞춰줘야 하는 것

 

maven복붙

 

application.properties에서 설정한 경로를 직접 만들어야 한다.

컨트롤러에서 리턴될 때 리턴되는 코드는 webapp폴더를 찾아가서 찾는다 그래서 webapp폴더를 생성해준다

그 이후 jsp파일을 작성한 다음 jsp파일을 viewcontroller에 연결시킨다.

 

버전이 맞지 않을 시에 오류가 나는데 버전을 바꿀 때 행동요령이다

1. 서버 완전 종료

2. 버전 변경(라이브러리 다운)

3. 메이븐 업데이트(업데이트해서 스프링이 정확히 어떤 버전을 써야 할지 알 수 있게 된다)

메이븐 업데이트방법