[SPRING] 게시판만들기 8 [ 어노테이션 기반 MVC 개발]
- 스프링은 어노테이션 기반 설정을 제공함으로써 과도한 XML 설정으로 인한 문제를 해결함.
- HandlerMapping, Controller, ViewResolver 같은 여러 클래스를 등록해야하므로 어노테이션 설정을 최대한 활용하여 XML설정을 최소화
1. 어노테이션 관련 설정
- xml파일의 bean을 줄이는 방법으로
- bean루트 엘리먼트에 context 네임스페이스를 추가한다.
- 스캐너 붙이기
<context:component-scan base-package="com.springbook.biz">
</context:component-scan>
- 기존에는 Controller 클래스 생성을 위해서는 Controller 클래스들을 모두 스프링 설정파일에 bean등록해야함.
- 하지만, 어노테이션을 사용하면 Controller클래스를 하나하나 다 등록할 필요없이 @Controller를 이용해서 자동으로 객체를 생성하게 할 수 있다.
- 메서드를 딱 내가 실행할 부분만 남기고 편집해준다.
- @RequestMapping 어노테이션을 사용해서 /insertBoard.do 가 주소에있으면 아래 실행코드를 매핑해줄 수 있도록 한다.
- update, insert, delete를 모두 동일하게 수정해준다.
- select문도 역시 수정해준다.
- 전체적으로는 동일하게 수정하나 select 쿼리를 실행하는 메서드는 return이 있어야하기 때문에 ModelAndView타입의 return으로 결과를 받을 수 있는 공간을 일단 남겨준다.
2. 클라이언트 요청처리
- 사용자가 요청한 값을 하나하나 VO에 set하고 사용했던 코드를 정리하자
- 사용자 입력정보를 기존에는 getParameter를 이용해서 받아서 저장했었다.
- 이렇게 코드를 사용하면 입력정보가 많을경우 코드가 너무 복잡해진다.
- 따라서 Command 객체를 이용해서 정리한다.
- Command객체는 메서드 매개변수로 받은 VO객체이다.
- 이렇게 처리해주면 getParameter라는건 코드에 없다.
- 다음으로 new로 생성했던 Service도 Command화 하자
- 나머지 Controller도 처리한다.
- select쿼리를 실행하는 메서드의경우 받아올 데이터가 있기때문에 return형이 ModelAndView가 된다.
[결과확인]
- 입력하기
- 목록보기
- 삭제하기
- 상세보기
- 수정하기
- 검색하기
- 이때 주의할점! 매개변수로 Command화 할때는 반드시 인터페이스가아닌 실제 실행코드가 있는 객체를 이용한다! Service인터페이스를 만들었다면 클래스인 ServiceImpl로 매개변수선언!
3. 컨트롤러 통합하기
- 여러개로 쪼개진 Controller를 하나의 파일에 통합한다.
4. 요청방식에 따른 처리 (GET/ POST)
- Controller에 GET/POST 방식을 설정하고
- form.jsp파일과 Controller에 각각 다른 방식으로 설정해준다.
- 결과를 확인하면
- 허용되지 않는 메소드라고 확인된다.
- 이번에는 설정을 맞춰준다.
- 값이 잘 입력되는 것을 볼 수 있다.
잠깐 참고!
[ GET방식의 특징]
URL에 변수(데이터)를 포함시켜 요청한다.
데이터를 Header(헤더)에 포함하여 전송한다.
URL에 데이터가 노출되어 보안에 취약하다.
전송하는 길이에 제한이 있다.
캐싱할 수 있다.
GET 방식은 간단한 데이터를 URL에 넣도록 설계된 방식으로 데이터를 보내는 양에 한계가 있다.[ POST방식의 특징 ]
URL에 변수(데이터)를 노출하지 않고 요청한다.
데이터를 Body(바디)에 포함시킨다.
URL에 데이터가 노출되지 않아서 기본 보안은 되어있다.
전송하는 길이에 제한이 없다.
캐싱할 수 없다.
GET방식은 URL에 데이터를 붙여서 전송하는 반면에 POST방식은 BODY에 데이터를 넣어서 전송
Author And Source
이 문제에 관하여([SPRING] 게시판만들기 8 [ 어노테이션 기반 MVC 개발]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yseonjin/SPRING-게시판만들기-8-어노테이션-기반-MVC-개발저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)