1.
기존에 XxxController.java 라는 이름을 가진 서블릿 파일을 생성하면,
이것저것 무거운 javax 로 시작하는것들이 import 됬었다.

2.
이는 Not POJO 를 의미 하며, 이렇게 생성한 서블릿 파일 내부에는
@WebServlet() 이라는 어노테이션이 작성 되어 있었다.
개발자가 소괄호 안에 요청값을 작성하면, 그 작성한 요청값을 읽어서,
해당 서블릿 파일이 호출되며,
XxxController.java 서블릿 내부의 멤버 (멤버변수 + 메서드) 사용을 위한
객체화는 @WebServlet() 이라는 어노테이션이 담당 하고 있었다.

3.
@WebServlet() 어노테이션을 사용 하지 않는다면,
해당 서블릿 파일은 web.xml 에서 설정을 할 수 있었다.
하지만, 이렇게 코드를 작성 하게 되면,
FilterSearchController 라는 이름을 가진 서블릿 파일이
서버가 시작 되고나서,
객체화가 되고,
filterSearch.do 라는 요청을 받았을 때, 사용자의 요청을 매핑 할 수 있도록,
매핑 설정 까지 하는 방식 이였다.
뿐만 아니라, FilterSearchController 라는 이름의 서블릿 파일 내부의
멤버 (멤버변수 + 메서드) 는 의존 관계 이므로,
의존 주입을 위해서,
FilterSearchController-servlet.xml 이라는 이름의 설정 파일까지 작성 해야 하는데,
이는,
.xml 파일의 추가적인 생성 뿐만 아니라, .xml 설정 파일의 코드가 길어진다는 것을 의미 했다.
== 가독성 저하
그래서, .xml 파일을 건드리는식으로 구현 하지 않는다.
4.
어 ? 근데, 가만보니까, 특정한 기능을 하는 메서드만 있으면 되네 ? 해서,
메서드 내부의 작성된 기능을 가져와서, POJO 클래스에 작성 할 수 있다는 생각을 할 수 있다.
이때, 사용자의 특정한 요청을 매핑 하기 위해서,
Spring 프레임워크에서 제공 해주는 @RequestMapping() 어노테이션을 사용 하면 된다.
스프링 프레임워크를 사용한 XxxController.java 를 생성 하고,
그 내부에 @ 어노테이션과, 특정한 기능을 수행하는 메서드를 작성 하기 때문에,
POJO 클래스를 의미하며, 스프링이 경량의 프레임워크를 지향한다는것이,
바로 이러한 상황이라고 볼 수 있겠다.
무게를 가볍게 줄일 수 있도록 하는것은 일반적으로 좋다.
5.
기존 서블릿 파일 예시)





6.
Spring 프레임워크를 사용한 서블릿 파일 경량화 하기.
@Controller 어노테이션을 통해, 해당 자료형을 객체화 할 수 있게 한다.
@RequestMapping 어노테이션을 사용하여, 사용자의 요청을 매핑 한다.





특정한 기능을 수행하는 메서드를 XxxController.java 내부에 작성한 모습이다.
POJO 클래스에 !
@Controller 어노테이션과 !
@RequestMapping() 어노테이션을 !
사용함으로써, 훨씬 가벼워진것을 생각 하면 된다.
7.
서버가 열렸을 때, 서블릿 컨테이너가 실행되고, DS가 객체화 (생성) 되면,
사용자의 어떤 요청에 대해 그 요청값을 매핑할건지,
매핑 설정을 web.xml 에서 했어야 하는데,
.do 요청으로 받는것으로 하고 싶지 않으면,

이런식으로 매핑 설정을 추가해주면 된다.
근데 굳이 이렇게 할 필요 없는듯 하다.
사용자의 요청을 받는
접수대가 여러개 있는 느낌 ..
'Spring 프레임워크 > 이론' 카테고리의 다른 글
AOP (관점 지향 프로그래밍) 관심분리 (.xml 파일 설정) (0) | 2023.08.11 |
---|---|
AOP (Aspect Oriented Programming) (관점 지향 프로그래밍) (0) | 2023.08.10 |
레이어 개념 정리 (2) | 2023.08.08 |
@ModelAttribute("이름") 어노테이션 (2) | 2023.08.07 |
Spring MVC 패턴의 구조 파악 4 (Controller 파트) (0) | 2023.08.04 |