Spring Bean Scope
스프링 빈에는 Scope를 정의할 수 있다.
singleton : 싱글톤 스코프, 별도지정이 없으면 default로 들어가게 된다. 멀티 스레드환경에서 동시 접근이 발생하므로 상태 관리가 중요하다.
prototype : 요청마다 새 bean instance를 생성한다. 멀티 스레드 환경에서 singleton보다 관리가 수월하다.
request : single instance per http request.
session : single instance per http session.
[질문 목록]
* 스프링의 configuration option 은?
XML, Annotations, Java, Groovy, DSL
* SOLID 의 S 의 기능?
Single Responsibility Principle
* SpringFramework 5에서는 XML Configuration이 아직 지원된다.
* Dependency Injection은 생성자 방식을 지향하는이유는?
클래스가 초기화 되었을 때 의존성을 주입하기 위해서이다.
* ComponentScan이 어떤 Annotation을 스캔하는지?
Spring's Stereotype annotation 을 scan한다. @Controller, @Service, @Component, @Repository
* Java class를 Spring configuration으로 쓰려면 어떤 annotation을 쓰는지?
@Configuration
* Java configuration class 안에 어떻게 spring component를 정의하는지?
@Bean
* 2개의 bean (같은 타입)이 있는데 어떻게 한쪽의 preference를 갖게 하는지?
@Primary annoation이 primary bean을 설정한다.
* Spring Bean의 lifecycle에 접근하는 2가지 annotation은?
@PostConstruct, @PreDestory
* @RestController가 Spring StereoType인가?
기술적으로, @Controller와 @ResponseBody 를 합치기 위한 편리한 annoation이다.
* SpringBoot Maven project가 왜 Spring Boot Parent POM을 상속받는지?
Compatible하게 하기 위해서
* Spring Sterotype이 어떤 annoation을 상속하는지?
@Component
* Ant로 Spring Boot을 빌드할 수 있는지?
가능, Ivy 사용해야함
* Spring Boot Starter 가 무엇인가?
Spring Boot Starter는 POM으로써 dependency들의 공통 집합이다. (기본 설정같은 것) 대부분 자바 프로젝트에 가능하다.
* @Repository의 특별한 점?
DAO관련 특정 예외를 잡을 수 있다 = 스프링이 specific persistence exception을 잡는다. (persistence는 영속성을 의미한다.) 그리고 Spring exception으로 다시 던져준다.
* @SpringBootApplication은 3가지의 다른 annotation들을 가지고 있다. 무엇인가?
@Configuration, @EnableAutoConfiguration, @ComponentScan
* auto-configuration을 springboot에서 어떻게 실행하는지?
Start Spring Boot에서 커맨드라인에 --debug를 한다.
* 특정 auto-configuration 클래스를 disable할 수 있는가?
@EnableAutoConfiguration안에 exclude 인자를 넣어준다.
* Spring scope의 default는 무엇인가?
Singleton Scope 이다.
* custom bean scope를 생성할 수 있는가?
가능하다. (extensible하니까)
* Prototpye에는 bean이 어떻게 생겅되는가?
매 요청 마다 새로운 bean instance를 생성한다.
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] 스프링 JPA 흐름, JPA 관련 질문 내용 정리 (0) | 2018.11.17 |
---|---|
[Spring] 스프링 Properties 관리하기 (0) | 2018.11.13 |
[SpringOneTour] 스프링을 만든 Pivotal사가 한국을 방문했다! (0) | 2018.11.08 |
[IntelliJ] 스프링 프로젝트 초기 세팅하기 - (1) (3) | 2017.04.30 |
Spring MVC (0) | 2017.01.03 |