본문 바로가기

전체글236

[스프링 핵심 원리 - 기본편] 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.
[스프링 핵심 원리 - 기본편] 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 사용할 때 마다 항상 새로운 프로토타입 빈을 생성하는 방법 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것입니다. public class PrototypeProviderTest { @Test void providerTest() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean clientBean1 = ac.getBean(ClientBean.class); int count1 = clientBean1.logi.. 2021. 9. 21.
[스프링 핵심 원리 - 기본편] 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 문제점 프로토타입 스코프의 빈을 싱글톤 빈과 함께 사용할 때는 의도한 대로 잘 동작하지 않으므로 주의해야 합니다. 프로토타입 빈 직접 요청 스프링 컨테이너에 프로토타입 빈 직접 요청1 1. 클라이언트A는 스프링 컨테이너에 프로토타입 빈을 요청합니다. 2. 스프링 컨테이너는 프로토타입 빈을 새로 생성해서 반환(x01)합니다. 해당 빈의 count 필드 값은 0입니다. 3. 클라이언트는 조회한 프로토타입 빈에 addCount()를 호출하면서 count 필드를 +1 합니다. 결과적으로 프로토타입 빈(x01)의 count는 1이 됩니다. 스프링 컨테이너에 프로토타입 빈 직접 요청2 1. 클라이언트B는 스프링 컨테이너에 프로토타입 빈을 요청합니다. 2. 스프링 컨테이너는 프로토타입 빈을 새로 생성해서 반환(x02)합니다.. 2021. 9. 21.