- Bean : Beans는 애플리케이션의 핵심을 이루는 객체이며, Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성된다.
- Spring Bean 의 속성
1) class(필수) : 정규화된 자바 클래스 이름
2) id : bean의 고유 식별자
3) scope : 객체의 범위(Sigleton, prototype)
4) constructor-arg : 생성 시 생성자에 전달할 인수
5) property : 생성 시 bean setter에 전달할 인수
6) init method와 destory method
- Bean은 기본적으로 SigleTon으로 생성하여 관리한다.
-> 애플리케이션 구동시 JVM안에서 스프링이 bean마다 객체를 하나씩 생성하게되고, 우리는 스프링을 통해 bean을 제공받으면 주입받은 bean은 언제나 동일한 객체라는 가정하에 개발하게 된다.
Scope | Description |
---|---|
singleton | 하나의 Bean정의에 대해서 Spring Ioc Container내에 단 하나의 객체만 존재한다. |
prototype | 하나의 Bean정의에 대해서 다수의 객체가 존재할 수 있다.(모든 요청에서 새로운 객체를 생성하는 것을 의미한다),정상적인 방식으로 gc에 의해 bean이 제거된다. |
request | 하나의 Bean정의에 대해서 하나의 HttpRequest의 생명주기 안에 단 하나의 객체만 존재한다 |
- 1) 생성자 주입 : @Autowired를 붙힌 클래스 생성자에 의존성 주입이 필요한 객체를 DI해주는 방법
2) 수정자 주입 : set메서드로 해당 객체의 의존성을 주입해주는 방법
3) 일반 메서드 주입 : 잘 사용하진 않지만 일반 메서드로 해당 객체를 의존성 주입하는 방법
- Spring FrameWork : 자바를 애플리케이션 개발을 위한 오픈소스 프레임워크로써 Ioc,DI,AOP등 편리한 기능을 제공해준다.
- Spring boot : 내장 톰켓을 따로 다운받을 필요없이 구동시킬 수 있다,dependency의 관리를 맡아준다(과거 스프링 프레임워크에서는 라이브러리의 버전이 맞지 않으면 문제가 생길 수 있었지만 boot stater가 이걸 관리해준다. )
- (아직 정확한 답변은 아니고 개인적인 생각임)
- 요청에 대한 오류는 제가 봤을 때 두가지다 런타임오류나 아예 응답을 받지 못하는 오류
따라서 일정 시간이 지나도 응답이 없을 때에 대한 타임아웃 오류 핸들링과 응답 값의 오류 핸들링이 필요하다.