- 1012

Yung·2022년 10월 12일
0

Java223bitcamp

목록 보기
19/26
  • 스프링 프레임워크
    • Spring IoC 컨테이너 사용법(계속)
    • Spring WebMVC 프레임워크 사용법(계속)
  • board-app 프로젝트 수행
    • 080.S

Spring IoC 컨테이너 클래스 계층도

Spring IoC 컨테이너 준비과정

new AnnotationConfigApplicationCOntext(AppConfig.class)
AppConfig.class : Spring IoC 컨테이너의 설정을 수행하는 클래스
1. AppConfig(자바 config) 객체 생성
2. 클래스나 메서드, 필드에 붙은 애노테이션 처리
@ComponentScan("패키기명") : 해당 패키지에 존재하는 클래스 중에서 Spring 프레임워크에서 지정한 애노테이션이 붙은 경우 객체를 생성하고 애노테이션을 처리한다.
@Bean("객체명") : 메서드를 호출하여 리턴된 값을 컨테이너에 보관한다.

* 개발자의 일
-애노테이션의 의미와 효과를 이해하고
-적절하게 사용하여
-IoC 컨테이너를 통제한다

Spring IoC 컨테이너와 설정방법

다양한 IoC 컨테이너

FileSystemXMLApplicationContext ---> XML태그로 설정
: OS 디렉토리경로에서 찾는다.

ClassPathXmlApplicationContext ---> XML태그로 설정
: 자바 클래스경로에서 XML파일을 찾는다.

"Java Config" 클래스에 애노테이션을 붙여서 설정하는것을 java config라 부른다.
AnnotationConfigApplicationContext ---> 자바 클래스 애노테이션으로 설정
: 자바 클래스 경로에서 찾는다.

Web Application에서 사용하는 IoC 컨테이너
AnnotationConfigWebApplicationContext ---> 자바 클래스 애노테이션으로 설정
: 기존의 AnnotationConfigApplicationContext에서 서블릿관련 객체를 보관하는 기능을 추가(ServletContext, HttpSession 등)

XmlWebApplicationContext ---> XML태그로 설정
:

080. 스프링 webMVCDml DispatcherServlet 과 IoC 컨테이너


DispatcherServlet ---> AnnotationConfigWebApplicationContext를 포함
: Front Controller

<<IoC Container>>AnnotationConfigWebApplicationContex
: <<Java Config>>AppConfig를 포함하고 있음
: @Component, @Controller, @Service, @Repository 등을 생성 및 관리

@Component, @Controller 등

<<IoC Container>> AnnotationConfigApplicationContext
@Component
: IoC 컨테이너가 @Component 애노테이션이 붙은 클래스에 대해 객체를 자동으로 생성한다.

@Component 하위 애노테이션
: 클래스 역할에 따라 좀더 섬세하게 제어하기 위해 만든 애노테이션
: @RestController JSON, XML을 응답하는 페이지 컨트롤러에 붙인다.
: @Controller HTML을 응답하는 페이지 컨트롤러에 붙인다.
: @Service 비즈니스로직 및 트랜잭션을 제어하는 클래스에 붙인다.
: @Repository DAO 역할을 수행하는 클래스에 붙인다.

<<IoC Container>> AnnotationConfigWebApplicationContext
@Component + ServletContext, HttpSession, ServletRequest, ServletResponse 등 웹관련 컴포넌트도 관리한다.

CURD : 등록, 조회, 변경, 삭제

Create
Retrieve, Read
Update
Delete

081. CRUD를 수행하는 페이지 컨트롤러를 하나로 합치기

  • 페이지 컨트롤러를 다루는 방법

1단계 - 게시판 CRUD 페이지 컨트롤로들을 하나로 합친다.

  • com.bitcamp.board.controller.BoardController 클래스 생성
    • 기존의 게시글 관련 페이지 컨트롤러의 메서드를 가져온다.
    • 기존의 페이지 컨트롤러를 삭제한다.

2단계 - 로그인, 로그아웃 관련 페이지 컨트롤러들을 하나로 합친다.

  • com.bitcamp.board.controller.AuthController 클래스 생성
    • 기존의 로그인, 로그아웃 관련 페이지 컨트롤러의 메서드를 가져온다.
    • 기존의 페이지 컨트롤러를 삭제한다.

3단계 - 회원 관련 페이지 컨트롤러들을 하나로 합친다.

  • com.bitcamp.board.controller.MemberController 클래스 생성
    • 기존의 회원 관련 페이지 컨트롤러의 메서드를 가져온다.
    • 기존의 페이지 컨트롤러를 삭제한다.

4단계 - BoardController 클래스 리팩토링

  • com.bitcamp.board.controller.BoardController 클래스 변경
    • saveAttachedFiles()
    • checkOwner()

5단계 - POST 요청 파라미터 값에 문자셋 지정을 필터로 이관한다.

  • com.bitcamp.board.filter.CharacterEncodingFilter 클래스 생성
  • com.bitcamp.board.controller.XxxController 클래스 생성
    • 요청 파라미터 값의 문자집합 설정 코드를 제거한다.

6단계 - @RequestMapping 애노테이션 사용법을 연습한다.

  • com.bitcamp.board.controller.AuthController 클래스 변경
    • @PostMapping, @GetMapping 대신 @RequestMapping 애노테이션을 사용한다.

082. Spring WebMVC 프레임워크 사용법

  • Spring WebMVC 프레임워크 사용법

1단계 - @RequestMapping 애노테이션으로 요청 URL을 합성하는 방법

  • com.bitcamp.board.controller.XxxxController 클래스 변경

2단계 - 스프링에서 제공하는 CharacterEncodingFilter로 교체한다

  • com.bitcamp.board.listener.COntextLoaderListener 클래스 변경
  • LoginCheckFilter, AdminCheckFilter도 자바 코드로 등록한다.

0개의 댓글