1.톰켓은 필터를 가지고 있음
필터는 입구에서 동작
2.스프링은 ? 리플랙션을 통한 AOP
함수의 전후에서 동작!
AOP는 공통관심사를 따로 분리해서 관리!
3.인터셉터? 필터+리플렉션을 통한 AOP
4.시큐리티? 인터셉터 + 보안 (현업에서 사용)
1. 필터 : 스프링이 아니라 톰켓이 들고있음
/post/1
/post관련 주소가 들어오면 필터에서 걸러내게 설정할수도 있다
세션이 있으면 들어가게 해주고..등등 필터역할(1차관문) - 공통적인 전처리(들어와서 수행되기 전에!!)
중국에서 오는 아이피 막고 싶으면?? 필터에서 막게 설정한다
필터통과해서 들어오면? 디스패쳐를 만난다.
2. 디스패쳐
IoC컨테이너에 PostController,UserController 등을 들고있다
/post를 들고있는게 누군지 찾는다!! post인지 user인지
아 PostController에 있네! 그래서 컨트롤러(C)에서 함수를 때려준다
컨트롤러에서 함수를 때려주기 직전에 aop처리해줄수 있다! 그리고 직전에 세션 확인도하고
컨트롤러 후처리도 가능하다. 전후처리 가능!!(필터는 전처리만 가능)
.class파일은 번역이 된 파일이다 (수정 불가능)
.java파일은 수정가능
reflection
껍데기함수를 하나 만들어놓고(어노테이션만 붙여놓는다던지...)
사용자가 C를 요청하면? 동적으로 C를 만들어낸다
D를 요청하면? D를 만들어낸다
미리 구체적으로 C,D,E 등,,,을 만들어놓지 않는 것
유효성 검사(validation check)
예를들어, username, password를 검사하는 도구를 만들어놓고 팔아먹었다
근데 사용자가 title,content검사 도구가 필요하다 요청하면? 필요할때마다 하나씩 다 만들어줘야한다
=>요청을 뭘하든 클래스를 분석해서 처리하는 기법 사용!!!!!(reflection)
reflection :
실시간으로 클래스안에 있는 함수,변수,어노테이션을 보고 분석하는 기법!! 컴파일시에 분석x, 요청시에 분석!!
컨트롤러에서 때려줄 함수위에 @sessioncheck라고 적으면??? 함수 때려주기전에 세션체크 가능!!!!!!
필터랑 reflection을 연결할수도 있다!!!!
aop를 기반으로 만들어진 라이브러리!!!!!! interceptor=> 함수 직전,직후 관리해줌
우리는 필터 안쓰고 인터셉터로!!!
▶interceptor 실습!!!!!
폴더 하나 생성한다
import하려면????
alt+shift+o
주소설계의 중요성!!!!!!!!!!!!!!!!
과제!!!!!!!!
게시글 보기 페이지는 exclude시키기!!!
단, delete랑 구분해줘야함
'springboot 수업일지' 카테고리의 다른 글
react 문법 (0) | 2021.08.05 |
---|---|
react 문법 (0) | 2021.08.04 |
25일차 react -삼항연산자(if문), map(for문) (0) | 2021.07.23 |
24일차 react 이론/프로젝트 설치/npm start (0) | 2021.07.22 |
23일차 - VS code설치 및 spring boot 프로젝트 설정 (0) | 2021.07.21 |