| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- jointpoint
- after-throwing
- c:if
- Java
- spring
- @RequestParam
- .xml
- 어노테이션
- PointCut
- @ResponseBody
- 서비스레이어
- 생성자주입
- produces
- @Valid
- @RequestMapping
- MVC
- frontController
- application.properties
- Model
- 의존주입
- SpringBoot
- @
- AOP
- 비즈니스레이어
- 유효성검사
- springjdbc
- gradle
- 바인딩변수
- 스프링
- springmvc
- Today
- Total
메모장
Spring 에 대한 간단 정리 본문
중요한 부분들을 다시한번 간단하게만 정리해보자
WEB-INF 에 있는 DispatcherServlet-servlet 파일에 대해 알아보자
원래 DS 한테 멤버변수 의존관계로 HandlerMapping 과 ViewResolver 가 있었는데 그걸 어노테이션으로 바꿔보는 연습을 진행하였다.
implements 는 @ (어노테이션)으로 바뀌면서 생략되고 생략이 되면서 메서드 강제가 사라져서 메서드 시그니처 변경이 가능해진다. 그래서 메서드 명도 바꿀수 있고 하나의 컨트롤러에 비슷한 기능의 메서드들을 같이 정리하는게 가능하다 !
비슷한 로직끼리 같은 컨트롤러 에 있기 때문에 응집도가 높아진다.
- @ (어노테이션)에선
HadlerMapping (핸들러 맵핑)의 역할을 → @RequestMapping 이 해준다.

value 입력하고 내가 무슨 요청을 받았을때 수행 할 것인지, method 에 따라 get, post방식 요청 인지를 구분하여 에러처리 및 보안 이유로 종종 사용되기도 한다. 이와같이 메서드 속성을 추가로 활용할 수 있다.
- Command(커맨드 객체)
xxxController 의 인자를 Command (커맨드 객체) 라고 하는데
new (객체화)와 동시에 request 에서 setter를 호출하여 자동 맵핑 되는 것까지 수행한다.

서버가 동작하는 흐름을 처음부터 따라가 보자 !
1 . index.jsp 페이지에서 main.do (*.do) 에 대한 요청을 시작한다.
2 . 그러면 DispatcherServlet에서 init 한다. 시작됐다. << MVC 2패턴 (FrontController)의 기능과 같다.
3 . 그래서 DispatcherServlet-servlet.xml 이 필요하다. (그게 WEB-INF 하위에 있어야 한다.)
DS 이 동작을 하려면 해당 xml이 필요하다.
@ (어노테이션), XML 둘다 일단 만들어야 한다.
4 . main.do 를 따라 controller 로 이동해본다.
이 메서드를 수행하려면

메서드 수행주체인 컨트롤러가 new 되어있어야 한다.

이 POJO (우리가 만든 클래스들은 POJO 이다.) 가 NEW 가 될려면 스프링 컨테이너가 필요하다.
정리 ★
pojo 라서 main()가 수행되려면 주체(객체)인 MainController 객체가 new 되어야함
↓
new를 해주려면 , pojo니까 스프링 컨테이너가 필요함
↓
컨테이너가 동작하려면 뭔지 모르지만 일단은 xml이 필요
↓
결론 xxx.xml이 없으면 동작 안됨
@ 어노테이션 방식을 쓰려면
<context:component-scan base-package="com.spring.view.controller" /> 을
DS 서블릿에 추가해야 된다.

@ 어노테이션을 사용하게 되면 내장된 ViewResolver 가 디폴트로 foward 방식을 사용한다.
(데이터를 가지고 이동하는 방식 ) ↔ 반대 redirect
거의 대부분 forward방식을 디폴트로 쓴다.
=================================
@ (어노테이션) 방식을 사용할때 ,
내장된 VR 는 디폴트로 forward 방식을 사용함 !
↓
리다이렉트 방식(전달할 데이터 없이 가볍게 이동) 을 사용하고 싶다면, "redirect: "
을 쓴다. prefix, suffix는 없다. 설정이 안되어있음
근데 포워딩이 설정 되어있어서 리다이렉트로 보내려면 redirect 를 붙여 주면 된다.
=================================
'Spring > 개념정리' 카테고리의 다른 글
| 레이어 개념 정리 (0) | 2024.06.21 |
|---|---|
| @ModelAttribute 어노테이션 (0) | 2024.06.21 |
| Spring 제공 MVC로 바꾸기 (@ 어노테이션 방식) (0) | 2024.06.21 |
| Spring 제공 MVC로 바꾸기 (.xml 방식) (0) | 2024.06.21 |
| @ 어노테이션의 종류 (0) | 2024.06.21 |