본문 바로가기
반응형

scope3

[Java] Scope란? 자바 스프링을 사용하다보면 BeanScope, singletonScope등등 단어를 보고 그안에 scope라는 단어를 많이 접하게 된다. 여기서 Scope에 대해서 설명하려고 한다. Scope라는 단어의 뜻은 '범위' 라는 의미를 갖고있다. 그리고 이 의미를 자바 스프링에 입힐때, 예를 들어 BeanScope라고 한다면 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다. 싱글톤(Singleton) : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입(Prototype) : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 //prototype 참고 포스팅.. 2023. 8. 23.
Spring prototype Bean Java Spring을 사용할 경우 Bean 을 Spring 위에 Singleton 으로 올리는것에 대해서는 이전 포스팅에서 다룬적이 있다. Singleton 에 대해서는 아래 참고 포스팅을 참고 바란다. 이번 포스팅에서 다룰 내용인 prototype이란. singleton은 여러번 호출이 되어도 하나의 주소를 반환한다고 한다면 이 prototype이란 요청시마다 객체가 생성이 되는 개념이라고 보면 된다. 그렇기에 당연히 무분별하게 사용하면 안되고 그럴경우엔 OutofMemory 등의 에러가 발생할수 있다. 허나 실제로 실무를 경험하다보면 거의 없지만 간혹 이 prototype을 사용해줘야하는 경우가 있을때도 있다. 그럴 경우에 대비하여 샘플 코드를 아래 작성 해둔다. bean을 생성할때 annotati.. 2023. 7. 29.
Spring 에서 Singleton singleton 패턴에 대해서는 아래 참고 포스팅을 참고 바란다. spring 에서의 기능중 하나는 의존성 주입인 DI 가 있다. 자세한 내용은 아래 참고 포스팅 참고바란다. 스프링에서는 컨테이너 위에 Bean이라고 하는 객체들을 생성한다. 그럼 개발자가 아닌 스프링에서 Bean을 대신해서 관리를 해준다. 여기서 Bean은 스프링위에 생성이 되는데, 호출이 될때마다 생성이 되는것이 아닌. Bean은 하나만 생성해두고, 호출이 될때마다 그 객체를 가져다 쓴다. 여러번 호출이 된다고 해서 객체가 여러개 생기는게 아니고 , 이것이 싱글톤이다. 간단히 코드로 예제를 살펴보면. @RestController @RequiredArgsConstructor public class TestController { priv.. 2023. 7. 28.
반응형