@ 설정을 위해서는 스프링 컨테이너가 내가 설정한 패키지 범위를 scan 할 수 있도록
context 네임스페이스를 추가해야 한다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<context:component-scan base-package="com.kim.biz.controller" />
// 스캔할 범위를 설정해 주어야 한다.
@Component() 진행 시 DAO류는 @Repository 서비스류는 @Service 서비스류와 같이 진행하였다.
컨트롤러류도 마찬가지로 @Controller로 객체화를 진행한다.
@Controller는 DS가 인식하는 C 객체로 설정해주며 더 이상 implements가 필요 없어 오버 라이딩 강제가 필요 없다.
완전한 POJO가 되었기 때문에 메서드 시그니쳐의 변경 또한 가능하다.
기존 오버 라이딩 시
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception
변경 후
ex) public void selectOneMember(HttpServletRequest request) 내가 설정 가능
@Controller로 객체화 이후 사용될 메서드에게 @RequestMapping("사용자의 요청정보")를 통해
어떤 사용자의 [요청]에 대해서 무슨 [메서드]를 수행해야 하는지 "연결"해 주어야 한다.
HandlerMapping의 역할을 수행해주며 하나의 C 클래스 내부에 여러 개의 메서드를 정의할 수 있다.
매핑을 완료했다면 Command 객체가 사용 가능하며 스프링 컨테이너가 Command 객체를 생성하고
사용자가 입력한 값들을 setter 주입으로 Command 객체에 세팅해준다.
변경 전
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
BoardVO bVO=new BoardVO();
bVO.setBid(Integer.parseInt(request.getParameter("bid")));
BoardDAO bDAO=new BoardDAO();
bVO=bDAO.selectOneBoard(bVO);
ModelAndView mav = new ModelAndView();
mav.addObject("data", bVO);
mav.setViewName("board.jsp");
return mav;
}
변경 후
@RequestMapping("/board.do")
public ModelAndView selectOneBoard(BoardVO bVO,BoardDAO bDAO,ModelAndView mav) {
bVO=bDAO.selectOneBoard(bVO);
mav.addObject("data", bVO);
mav.setViewName("board.jsp");
return mav;
}
'Spring' 카테고리의 다른 글
| 2-Layered 아키텍처 (0) | 2022.09.26 |
|---|---|
| Spring 다양한 @(어노테이션) 설정 (0) | 2022.09.23 |
| Spring MVC2 DispatcherServlet.xml 설정 (0) | 2022.09.21 |
| MVC 패턴의 변화 (0) | 2022.09.20 |
| 스프링 JDBC 설정 (0) | 2022.09.19 |