본문 바로가기

Spring106

[스프링 핵심 원리 - 기본편] 스코프와 프록시 @Component @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public class MyLogger { ... } 여기가 핵심입니다. proxyMode = ScopedProxyMode.TARGET_CLASS)를 추가해줍니다. 적용 대상이 인터페이스가 아닌 클래스면 TARGET_CLASS를 선택 적용 대상이 인터페이스면 INTERFACES를 선택 이렇게 하면 MyLogger의 가짜 프록시 클래스를 만들어두고 HTTP request와 상관 없이 가짜 프록시 클래스를 다른 빈에 미리 주입해 둘 수 있습니다. Provider 사용 이전으로 코드 복원 @Controller @RequiredArgsConstructor public cl.. 2021. 9. 21.
[스프링 핵심 원리 - 기본편] 스코프와 Provider 첫번째 해결방안은 Provider를 사용하는 것입니다. @Controller @RequiredArgsConstructor public class LogDemoController { private final LogDemoService logDemoService; private final ObjectProvider myLoggerProvider; @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request) { String requestURL = request.getRequestURL().toString(); MyLogger myLogger = myLoggerProvider.getObject(); myLog.. 2021. 9. 21.
[스프링 핵심 원리 - 기본편] request 스코프 예제 만들기 웹 환경 추가 웹 스코프는 웹 환경에서만 동작하므로 web 환경이 동작하도록 라이브러리를 추가해야합니다. build.gradle에 추가 //web 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-web' hello.core.CoreApplication의 main 메서드를 실행하면 웹 애플리케이션이 실행되는 것을 확인할 수 있습니다. 2021-09-21 19:20:53.037 INFO 21424 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2021-09-21 19:20:53.. 2021. 9. 21.
[스프링 핵심 원리 - 기본편] 웹 스코프 웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작합니다. 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리합니다. 따라서 종료 메서드가 호출됩니다. 웹 스코프의 종류 request: HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리됩니다. session: HTTP Session과 동일한 생명주기를 가지는 스코프 application: 서블릿 컨텍스트(ServletContext)와 동일한 생명주기를 가지는 스코프 websocket: 웹 소켓과 동일한 생명주기를 가지는 스코프 HTTP request 요청 당 각각 할당되는 request 스코프 참조 스프링 핵심 원리 - 기본편 2021. 9. 21.