스프링 컨테이너(싱글톤)
2021. 5. 3. 00:41
스프링
[스프링(싱글톤) 컨테이너] - 싱글톤 패턴의 문제를 해결하면서, 싱글톤으로 관리한다. - 스프링 컨테이너는 싱글톤 컨테이너 역할을 한다. 이렇게 싱글톤 객체를 생성하고, 관리하는 기능을 싱글톤 레지스트리라고 한다. -> 싱글톤 코드가 줄어들고, DIP,OCT,테스트,private 생성자로부터 자유로워 진다. -> 스프링이 다 알아서 한다. 스프링의 기본 빈등록 방식은 싱글톤 방식이다.
싱글톤 패턴
2021. 5. 3. 00:41
스프링
[싱글톤] - 여러 고객이 동시에 요청한다. ex) 고객이 3번을 요청하면 객체가 3번 생성된다. - 웹은 고객의 요청이 아주 많은데 100번 요청이면 100개, 실제로는 더 많이 생성. 그래서, 딱 1개만 생성되고, 공유하도록 한다. 메모리 낭비를 줄인다. -> 싱글톤 패턴 싱글톤 패턴은 클래스의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴이다. ->private로 외부에서 new 생성을 못하도록 막아야 한다. static final. -> 자바올릴 때 미리 생성되도록 하는 패턴이다. -> 싱글톤에 많은 방법들이 있는데 가장 안전하고 쉬운 방법이다. 단점. -> 테스트 어렵고, 유연성 떨어지고, private 때문에 자식도 못만든다. -> 그래서 스프링 컨테이너가 이것을 다 해결했다.
인터셉터
2021. 5. 1. 18:05
스프링
[인터셉트, Interceptor] -회원전용 같은거 하려면 매번 redirect를 할 수가 없다. 그래서 하는 것이 Interceptor이다. 컨트롤러 가기전에 가로채서 검증을 한다. 1. Request -> DispatcherServlet -> HandlerInterceptor(인터페이스) 가 가로챈다. HandlerInterceptor = 1. preHandle() 2. postHandle() 3.afterCompletion() 작동전, 컨트롤러 후, 컨트롤러 뷰 모든 작업 후 Redirect -> DispatcherServlet -> HandlerInterceptor -> preHandle -> Handler(Controller) -> view -> afterCompletion() -> respo..