Dev/Spring11 [Spring] Singleton / Prototype 스프링 빈 스코프 오브젝트가 생성되고, 적용되는 범위를 빈의 스코프(Scope)라고 한다. 스프링 빈의 기본 스코프는 싱글톤이다. 싱글톤 스코프는 강제제거하지 않는 한 스프링 컨테이너가 존재하는 동안 계속 유지된다. 경우에따라서 싱클톤 외의 스코프를 가질 수 있다. 프로토타입 스코프 요청 스코프 세션 스코프 등등... 이 중 스프링에서의 싱글톤과 프로토타입에 대해서 알아보자. 👩💻 Singleton https://ssyoni.tistory.com/9 스프링이 빈 스코프를 싱클톤으로 만드는 이유 스프링 싱글톤 스프링은 여러 번에 걸쳐 빈을 요청하더라도 매번 동일한 오브젝트를 돌려준다. getBean() 메서드를 실행할 때마다 매번 new에 의해 새로운 오브젝트를 생성하지 않는다는 뜻 도대체 ssyoni... 2022. 1. 17. [Spring] 스프링이 빈 스코프를 싱클톤으로 만드는 이유 스프링 싱글톤 스프링은 여러 번에 걸쳐 빈을 요청하더라도 매번 동일한 오브젝트를 돌려준다. getBean() 메서드를 실행할 때마다 매번 new에 의해 새로운 오브젝트를 생성하지 않는다는 뜻 도대체 왜? 👩💻 싱글톤 레지스트리로서의 애플리케이션 컨텍스트 애플리케이션 컨텍스트? 싱글톤을 저장하고 관리하는 싱글톤 레지스트리이자 IoC 컨테이너이다. 스프링은 기본적으로 별다른 설정을 하지 않으면 생성하는 빈 오브젝트를 싱글톤으로 만든다. 💡 스프링이 빈을 싱글톤으로 만드는 이유 : 스프링이 주로 적용되는 대상이 자바 엔터프라이즈 기술을 사용하는 서버 환경이기 때문. 태생적으로 스프링은 엔터프라이즈 시스템을 위해 고안된 시스템. 실제로 대부분 스프링은 서버 환경에서 사용된다. 서버 하나당 브라우저나 여타 시스.. 2022. 1. 17. [Spring] Bean 생명 주기 스프링 빈의 이벤트 라이프사이클 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 → 사용 → 소멸 전 콜백 → 스프링 종료 초기화 콜백 : 빈이 생성되고, 의존관계 주입이 완료된 후 호출 소멸 전 콜백 : 스프링 컨테이너가 종료되어 소멸되거나, 빈이 소멸되기 직전에 호출 스프링은 3가지 방법으로 빈 생명주기 콜백을 지원한다. 인터페이스 (InitializingBean, DisposableBean) 설정 정보에 초기화 메서드, 종료 메서드 지정 어노테이션 지원 (@PostConstruct, @PreDestroy) 객체의 생성과 초기화의 분리란? 스프링 빈도 객체이기 때문에 초기화가 필요하다. 주로 인스턴스가 생성되는 시점에 어떤 작업을 할 때에는 대부분 생성자에서 이루어진다. 그.. 2022. 1. 17. [Spring] 빈 등록방법, 의존관계 자동주입, lombok 📍 빈 등록 Bean 객체를 등록하는 방법 XML Annotation JavaConfig XML 설정파일에 직접 빈을 등록할 시에는 빈의 성격을 구분하기가 힘들다 어플리케이션의 크기에 따라 빈의 양이 늘어나 관리가 힘들어진다 라는 단점이 있다. 때문에 스프링에서는 특정 클래스에 Annotation을 부여하여 클래스를 자동으로 찾아 빈을 등록해주는 빈 스캐닝 기능을 제공해준다. Annotation 으로 Bean 객체를 등록 @Component, Java Config 1. @Component / @ComponentScan (스프링 2.5.x) : 자기 자신부터 시작해서 하위 패키지를 스캔해서 @component 어노테이션(또는 이 어노테이션을 사용하는 다른 어노테이션)이 붙은 클래스를 찾아서 빈으로 등록한다.. 2021. 12. 25. [Spring]DI, IoC, SOLID 🚀 DI (Dependency Injection) : 의존성 주입 A라는 크래스에서 B라는 클래스를 필요로 할 때 A는 B의 의존성을 갖는다고 한다. 의존성 주입을 하면 프로그램 설계를 할 때 코드 재사용성이 향상된다. 객체간의 결합도가 낮아지면서 유연한 코드 작성 가능. 🚀 IoC (Inversion of Control) 제어의 반전이라는 뜻. 근데 why 제어의 반전? 기존 프로그래밍에서의 논리 흐름은, A클래스에서 B클래스를 호출하게 되면, A클래스를 생성하고, 그 다음으로 호출되는 B클래스 객체를 생성한다. 그러나 IoC 의 프로세스에서는 주입 객체로 정의되어있는 클래스들(B클래스)을 먼저 생성하고 그 다음에 호출하는 메인 클래스(A클래스)를 생성하기 때문에 이를 제어의 반전 또는 역행이라고 하는.. 2021. 12. 25. 이전 1 2 다음 반응형