* 스프링 MVC 프로젝트의 기본 구성
- 웹 프로젝트는 3-tier 방식
- 스프링 MVC 영역은 프레젠테이션 tier를 구성하게 되는데, 각 영역은 사실 별도의 설정을 가지는 단위로 볼 수 있다.
- 스프링 Core 영역은 흔히 POJO(Plain-Old-Java-Object)의 영역입니다. 비즈니스 계층, 영속계층
- 스프링은 스프링의 의존성 주입을 이용해서 객체 간의 연관구조를 완성해서 사용합니다.
- 해당 영역의 설정 파일이 각각의 설정을 담당
root-context.xml - spring Core
servlet-context.xml - spring MVC
* 비즈니스 계층의 component-scan 설정
비즈니스 계층의 인터페이스와 구현 클래스가 작성되었다면,
이를 스프링 빈으로 인식 하기 위해서 root-context.xml @Service 어노테이션이 있는 패키지를 스캔(조사) 하도록 추가해야 합니다.
네임스페이스에서 context 항목을 추가하고 root-context.xml에 아래 내용을 추가합니다.
<context:component-scan base-package="com.youngwun.service">
</context:component-scan>
* redirect 처리
@PostMapping("/register")
public String register(BoardVO board, RedirectAttributes rttr) {
log.info("register: " + board);
service.register(board);
rttr.addFlashAttribute("testResult", "1");
rttr.addFlashAttribute("result", board.getBno());
return "redirect:/board/list";
}
위와 같이 redirect로 등록후 list로 재전송을 하지 않는다면 사용자는 브라우저의 '새로고침'을 통해서
동일한 내용을 계속 서버에 등록할 수 있따.
브라우저에서는 이런 경우 경고창을 보여주기는 하지만 근본적으로 차단하지는 않습니다.
'spring' 카테고리의 다른 글
@Override 쓰는 이유 (0) | 2023.06.02 |
---|---|
파라미터가 동일한 이름으로 여러 개 존재하면 배열로 처리 가능 (0) | 2023.03.03 |
Controller의 리턴 타입 (0) | 2023.02.21 |
Model이라는 데이터 전달자 (0) | 2023.02.17 |
@DateTimeFormat (0) | 2023.02.17 |