2021-01-07 sp3

jsbak·2021년 1월 7일
0

Spring

목록 보기
1/7

내손의 컨테이너
메이븐에 디펜던시 추가 - 단점 : 자르가 쪼개져있다. - 여기서 스프링이 가볍다 라는 장점이 나온다.
어떤 자르가 필요한지, 모듈성 의존성 (모듈관계 의존도)

컨테이너 분리?

<url-pattern>/admin/*</url-pattern>
, /user/*
이러면 하나의 요청에 대해 두개 동시에 접근이 되게 된다면, 공통이라면 이 두 컨테이너에 두개를 중복으로 등록하게 된다.
그래서 이 때 계층 구조를 형성을 해서 root 컨테이너를 만들어 여기에 등록하면 중복으로 정의될 필요가 없다.

루트(상위 컨테이너)는 공통빈이나
웹에 종속되지 않는 컴포넌트 요소들을 등록한다.

annotation-driven
설정에 의해 이미 여러개의 빈들이 등록 되어있다. MVC 관련 빈들 등록 - 말그대로 기본설정만 되어있다.CoC 가 아니라 우리에 맞는 커스텀 마이징이 필요했다.

명시적으로 뷰위치, 뷰 리졸버(확장자 관련) 를 설정해야한 것이다.
prefix, suffix 로 설정

UI동기, 데이터 비동기
??

왜 정적 요청 처리가 안되는가?

  • Jsp Servlet 이라고 부를 수 있는 이유(동적요청 처리)

미들 티어로써의 정적요청을 처리하는 부분 - 웹서버의 역할을 대신했다.


톰켓의 요청 받는 부분과 아래 우리의 요청 받는 부분일치

우리가 이렇게 설정을 해서 정적 요청 처리가 안되고 있었다.


WEB-INF 동적 자원 , resources 에서는 정적 자원이 관리 되었는데.
톰캣이 라이프 사이클을 관리하며, 스프링 영역 밖에 존재하는 것이다. 스프링 컨테이너 밖에 존재하여 주입을 받을 수 없게 되는것
, 이걸 해결하기 위한 방법이 핸들러 인터셉터(필터를 대체, 어떻게 캐쉬를 관리하는가 이런거 등등 알게된다.)를 이용
모든 자원에는 resources 라는 공통 위치? 존재

Spring Event 처리 구조?

  • 시작 종료가 명확하다가
    이 과정 중에 이벤트가 발생하고 이것을 지원하는 구조를 지원한다.
  • 구조가 처리되는 그 과정에 이벤트를 지원해줘야한다.

Spring에서는 필터대신에 내부에서 돌아 갈수 있는 파일 업로드를 멀티파트 리졸버로 관리한다?
핸들러 어댑터에서 이것을 처리한다.(파일업로드 체크 필터를 등록한 것과 마찬가지)

스프링 하면서 버릴 습관

  1. new 로 만드는게 아니라 빈으로 받아서 쓴다
  2. 최대한 req, resp, session 쓰는경우를 줄인다. 필요하지 않으면 model

필수 파라미터 검증 핸들러 어댑터?
커맨트 오브젝트에 대한 검증도 핸들어 어댑터가 하는게 옳지 않나?

어노테이션 드리븐에 자동으로 올라가는 녀석중에
벨리데이터가 있다.
검증 결과

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

이녀석을 이용하면 초기값으로 입력값을 받을 필요가 없다.
<form:input path="mem_id"/>
서버사이드 추가 설정 및 jquery 가 복잡해진다.
그래서 안쓸거

다만 이걸로
<form:errors></form:errors>
검증 데이터를 가져온다

<form:errors path="member.mem_id"/>
path="모델명.프로퍼티"

<form:errors path="member.mem_id" element="span" cssClass="error"/>
element="값"
값에 따른 태그로 만들어준다. 그리고 error 관련?

form을 form:form

Errors : 검증 결과에 대한 위치는 검증 대상(커맨드 오브젝트)의 바로 다음에 와야한다.
(쌍으로)

스프링 이용해서 검증을 국제화?, 검증 메시지 커스텀 마이징

메시지 번들을 웹에 종속되기 때문에 하위에 등록할 예정이다

스프링 에서는 필터 대신에 핸들러 인터셉터라는 녀석을 사용한다.

컨트롤러 전단계 핸들러 어댑터와 컨트롤러 사이에
전/후처리를 위해서 사용(컨테이너 안에서 사용하기 위해서) 필터는 컨테이너 밖이라 스프링 영향을 받을 수 없다. 스프링 영역이 아니다.

p:paramName 으로 기본 설정 값을 바꿀수 있다. 원래는 locale 인데 lang 으로 바꿈

벨리데이터 사용하기 위한 과정

미션

거래처, 게시판 해서 WebStudy04 잘 되게 해오기

profile
끄적끄적 쓰는곳

0개의 댓글