[Spring]스프링 핵심 기술

less than 1 minute read

  1. IoC 사용하는 이유는? 여러가지 DI 방법과 베스트 프랙틱스 노하우가 쌓여있는 프레임워크이기 때문이다. 초기에는 빈 정의,

  2. 컨테이너? ioc 기능을 제공하는 컨테이너, 빈들을 담고 있기 때문에 컨테이너라고 부른다.

  3. 왜 빈으로 ioc컨테이너가 관리하도록 하는가? 의존성 주입 때문이기도 하고, 의존성 주입을 받으려면 빈으로 등록되어 있어야 주입을 받을 수 있다. 빈 스코프 때문이기도 하다. 싱글톤으로 관리하고 싶을 때도 IoC컨테이너를 사용하면 편리하다. IoC에 등록되는 빈들은 기본적으로 싱글톤 스코프로 빈으로 등록이 된다. 라이프사이클 인터페이스 지원 @PostConstruct

  4. 빈의 스코프

    • 싱글톤
    • 프로토
  • 싱글톤 빈이 프로토 타입 빈을 참조할 때 프로토 타입 빈을 업데이트 하는 방법 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();
              }
          }
    
  1. Environment 6-1. 프로파일 빈들의 묶음이다. 6-2. 프로퍼티

  2. MessageSource 국제화(i18n) 기능을 제공하는 인터페이스; 메시지를 다국화 하는 방법

    리로딩 기능: 앱 실행 중에 messages.properties 파일의 내용을 변경해서 메시지소스를 변경할 수 있다.

  3. ApplicationEventPublisher 비침투성: 스프링 코드(프레임워크 코드)에 노출되지 않는 것 더 코드를 유지보수하기 쉬워진다.(POJO)