티스토리 뷰
CS/CS 14일 프로젝트
[CS 14일 프로젝트] 2022-11-27(filter와 interceptor / DI(Dependency Injection, 의존성 주입))
데브캣_DevCat 2022. 11. 27. 16:03filter와 interceptor
filter
와interceptor
는AOP
와 함께 공통 기능을 모아서 처리할 수 있는 방법을 제공한다.filter
는Dispatcher Servlet에 요청이 전달되기 전/후
로 스프링 컨테이너가 아닌 톰캣과 같은웹 컨테이너
에 의해 관리된다.interceptor
는Controller
를 호출하기 전/후에스프링 컨텍스트
에서 동작한다.- 필터는 다음 필터를 호출하기 위해
chain.doFilter
로 request, response 객체를 넘겨주기 때문에 원하는 객체를 넣어서 조작할 수 있지만 인터셉터는 디스패처 서블릿이 인터셉터 목록을 for문으로 돌면서 true 혹은 false를 반환해 동작을 제어하기 때문에 객체를 조작할 수 없다는 점에서 필터와 차이가 있다. - 필터는 스프링과 무관하게 전역적으로 처리해야 하는 보안 검사, 이미지나 데이터의 압축, 문자열 인코딩과 같은 웹 어플리케이션 전반에 사용되는 기능을 구현할 때 사용될 수 있고
- 인터셉터는 로그인 체크와 같은 세부적인 보안 작업이나 JWT 토큰 정보를 파싱해서 컨트롤러로 넘겨주는 등의 작업에 사용될 수 있다.
DI(Dependency Injection, 의존성 주입)
- 의존성 주입은 객체 내부에서 new 연산자를 통해 직접 호출하는 대신 외부인 스프링 컨테이너에서 객체를 생성하여 넣어주는 방식이다.
- 클래스가 아닌 객체간 의존관계를 설정함으로써 결합도는 낮추면서 유연성과 확장성을 향상시킨다.
- 의존성을 주입하는 방법에는 필드주입, @Setter 혹은 set() 메서드를 이용한 수정자 주입, 생성자 주입이 있다.
- final 선언이 가능하여 불변성이 보장된다는 점, 필수적으로 사용해야 하는 요소 없이는 인스턴스를 만들지 못하도록 강제할 수 있다는 점 때문에 생성자 주입 방법이 권장된다.
연관자료
반응형
'CS > CS 14일 프로젝트' 카테고리의 다른 글
[CS 14일 프로젝트] 2022-11-30(WS와 WAS / Apache와 NginX) (0) | 2022.11.30 |
---|---|
[CS 14일 프로젝트] 2022-11-29(싱글톤 패턴 / 트랜잭션) (0) | 2022.11.29 |
[CS 14일 프로젝트] 2022-11-28(AOP / Spring IoC Container) (0) | 2022.11.28 |
[CS 14일 프로젝트] 2022-11-26(Dispatcher Servlet / Spring Bean Life Cycle) (0) | 2022.11.26 |
[CS 14일 프로젝트] 2022-11-25, JPA, ORM / 스프링과 스프링부트 (0) | 2022.11.25 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DP
- 프로그래머스
- JPA
- CS
- Algorithm
- 자바
- Spring
- 이분탐색
- BFS
- 자바스크립트
- 형변환
- JavaScript
- Nest
- 자바dp
- 자바트리
- 리액트
- 해시맵
- Queue
- 타입스크립트
- 알고리즘
- SQLD
- 스프링
- dfs
- java
- Comparator
- 스프링부트
- 백준
- 자바bfs
- 정렬
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함