복붙노트

[SPRING] 스프링 MVC, 앞으로

SPRING

스프링 MVC, 앞으로

사이에 어떤 차이가 있습니까?

public class Controller1 extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return new AnotherController().handleRequest(request, response);
    }
}

@Controller
public class Controller1 {

    @RequestMapping ...
    public String handleRequest() {
        return "forward:/path_to_my_another_controller";
    }
}

해결법

  1. ==============================

    1.그들은 비슷하지만 완전히 동일하지 않습니다.

    그들은 비슷하지만 완전히 동일하지 않습니다.

    두 번째 방법은 두 번째 컨트롤러로 전달되는 새로운 내부 요청을 생성하는 반면, 첫 번째 요청은 동일한 요청 개체를 다시 사용합니다.

    그 문제의 중요성 여부는 각 컨트롤러가 요청에 대해하는 일에 달려 있습니다.

    직접 메소드 호출을 사용하는 체인 컨트롤러가 Spring 주석 컨트롤러의 더 매력적인 측면 중 하나임을 발견했습니다. 전달 된 요청을 처리하는 것보다 훨씬 자연스러운 흐름을 만들 수 있습니다.

    언제나 그렇듯이 마일리지는 다를 수 있습니다.

  2. ==============================

    2.컨트롤러를 직접 생성함으로써, Spring이 의존성을 주입하는 것을 막을 수 있습니다. 이로 인해 자체 생성 컨트롤러가 올바르게 작동하지 않을 수 있습니다.

    컨트롤러를 직접 생성함으로써, Spring이 의존성을 주입하는 것을 막을 수 있습니다. 이로 인해 자체 생성 컨트롤러가 올바르게 작동하지 않을 수 있습니다.

    이런 컨트롤러를 체인해야한다면, 새로운 컨트롤러로 컨트롤러를 생성하는 대신 원하는 컨트롤러의 인스턴스를 Spring 애플리케이션 컨텍스트에 요청할 것입니다.

  3. from https://stackoverflow.com/questions/2997866/spring-mvc-forward by cc-by-sa and MIT license