[Spring]스프링 핵심 기술
-
IoC 사용하는 이유는? 여러가지 DI 방법과 베스트 프랙틱스 노하우가 쌓여있는 프레임워크이기 때문이다. 초기에는 빈 정의,
-
컨테이너? ioc 기능을 제공하는 컨테이너, 빈들을 담고 있기 때문에 컨테이너라고 부른다.
-
왜 빈으로 ioc컨테이너가 관리하도록 하는가? 의존성 주입 때문이기도 하고, 의존성 주입을 받으려면 빈으로 등록되어 있어야 주입을 받을 수 있다. 빈 스코프 때문이기도 하다. 싱글톤으로 관리하고 싶을 때도 IoC컨테이너를 사용하면 편리하다. IoC에 등록되는 빈들은 기본적으로 싱글톤 스코프로 빈으로 등록이 된다. 라이프사이클 인터페이스 지원 @PostConstruct
-
빈의 스코프
- 싱글톤
- 프로토
- 싱글톤 빈이 프로토 타입 빈을 참조할 때 프로토 타입 빈을 업데이트 하는 방법
scoped-proxy
@Component @Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
클래스 기반의 프록시를 만들라고 알려 주는 것.
ObjectProvider
@Component public class Single { @Autowired private ObjectProvider<Proto> proto; public Proto getProto() { return proto.getIfAvailable(); } }
-
Environment 6-1. 프로파일 빈들의 묶음이다. 6-2. 프로퍼티
-
MessageSource 국제화(i18n) 기능을 제공하는 인터페이스; 메시지를 다국화 하는 방법
리로딩 기능: 앱 실행 중에 messages.properties 파일의 내용을 변경해서 메시지소스를 변경할 수 있다.
-
ApplicationEventPublisher 비침투성: 스프링 코드(프레임워크 코드)에 노출되지 않는 것 더 코드를 유지보수하기 쉬워진다.(POJO)