전체 글

전체 글

    [Spring] Environment

    Environment 프로파일과 프로퍼티를 다루는 인터페이스 ApplicationContext extends EnvironmentCapable getEnvironment() 프로파일 빈들의 그룹 Environment의 역할은 활성화할 프로파일 확인 및 설정 프로파일 유즈케이스 이 빈은 모니터링 용도이기에 테스트할 때는 필요가 없고 배포할 떄만 등록이 되면 좋겠다. 프로파일 정의하기 클래스에 정의 @Configuration @Profile("test") @Component @Profile("test") 메소드에 정의 @Bean @Profile("test") 프로파일 설정하기 -Dspring.profiles.avtive="test" @ActiveProfiles 프로파일 표현식 ! (not) & (and) |..

    [Spring] 빈의 스코프

    스코프(Scope) 싱글톤 프로토타입 Request Session WebSocket ... 프로토타입 빈이 싱글톤 빈을 참조하는데 문제 없다. 싱글톤 빈이 프로토타입 빈을 참조하면 같은 객체를 참조한다. 즉 프로토타입 빈이 업데이트 되지 않는다. 업데이트를 하려면 scoped-proxy, Object-Provider, Provider(표준)을 사용해야한다. 싱글톤 객체 사용시 주의할 점 프로퍼티가 공유된다. ApplicationContext 초기 구동시 인스턴스가 생성된다.

    [Spring] Component Scan 과 Component

    [Spring] Component Scan 과 Component

    컴포넌트 스캔 설정 방법 XML 설정에서는 context:component-scan Java 설정에서는 @ComponentScan 특정 패키지 이하의 모든 클래스중에 @Component 어노테이션을 사용한 클래스를 빈으로 자동으로 등록해준다. 컴포넌트 스캔의 주요 기능 스캔 위치 설정 필터 어떤 어노테이션을 스캔 할지 또는 스캔하지 않을지 설정 Component @Repository @Service @Controller @Configuration 동작 원리 @ComponentScan은 스캔할 패키지와 어노테이션에 대한 정보 실제 스캐닝은 ConfigurationClassPostProcessor라는 BeanFactoryPostProcessor에 의해 처리된다. 펑션을 사용한 빈 등록

    [Spring] @Autowired

    @Autowired 필요한 의존 객체의 타입에 해당하는 빈(Bean)을 찾아 주입한다. required 기본값은 true (따라서 찾지 못하면 어플리케이션 구동 실패) 사용할 수 있는 위치 생성자 (스프링4.3 부터는 생략 가능) setter 필드 경우의 수 해당 타입의 빈이 없는 경우 해당 타입의 빈이 한개인 경우 해당 타입의 빈이 여러개인 경우 빈 이름으로 시도 같은 이름의 빈을 찾으면 해당 빈 사용 같은 이름의 빈을 못찾으면 실패 같은 타입의 빈이 여러개 일 때 @Primary 해당 타입의 빈 모두 주입 받기 @Qualifler (빈 이름으로 주입) 동작 원리 BeanPostProcessor 새로 만든 빈 인스턴스를 수정할 수 있는 라이프 사이클 인터페이스 AutowiredAnnotationBean..