Bean 5

학습 // Spring // AOP // 프로퍼티(Property)

업데이트 :: 2018.08.08 프로퍼티빈정의시 프로퍼티빈구현시 프로퍼티프로퍼티각종 설정값이 소스코드 안에 기재된 예제@Bean(destroyMethod="close") DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("org.postgresql.Driver"); dataSource.setUrl("jdbc:postgresql://localhost:5432/demo"); dataSource.setUsername("demo"); dataSource.setPassword("pass"); dataSource.setDefaultAutoCommit(false); retu..

Spring/DI & AOP 2018.08.08

학습 // Spring // DI // Bean 설정분할 (import)

업데이트 :: 2018.08.07 빈 설정분할자바기반 설정분할Xml기반 설정분할빈 설정분할DI 컨테이너에서 관리하는 빈이 많아질수록 관리가 어려움빈 설정범위를 명확히 하고 가독성을 높이기 위해 목적에 맞게 분할하는 것이 좋음자바기반 설정분할@Import를 사용해서 분할된 설정을 병합@Configuration @Import({DomainConfig.class, InfrastructureConfig.class}) public class AppConfig { // DomainConfig.class와 InfrastructureConfig.class에 정의한 빈을 주입할 수 있음 } 분할된 클래스 (1)@Configuration public class DomainConfig { @Bean UserService u..

Spring/DI & AOP 2018.08.07

학습 // Spring // DI // 빈 생명주기 ( Bean Lifecycle )

업데이트 :: 2018.08.07 빈의 생명주기빈 초기화단계빈 설정정보 읽기 및 보완빈 생성 전후처리빈 생성 초기화처리빈 사용단계빈 종료단계빈 파괴 전처리DI 컨테이너 종료빈의 생명주기빈 초기화 단계 (initialization)빈 사용 단계 (activation)빈 종료 단계 (destruction)빈 초기화단계빈을 설정하는 과정빈을 인스턴스화 하는 과정빈을 생성한 다음 후처리 하는 과정빈 설정정보 읽기 및 보완public interface BeanFactoryPostProcessor { void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory); } BeanFactoryPostProcessor를 직접 구현해서 빈으로 정의하면 자신..

Spring/DI & AOP 2018.08.07

학습 // Spring // DI // 빈 스코프(Bean Scope)

업데이트 :: 2018.08.07 빈 스코프스코프 종류스코프 설정서로 다른 스코프의 빈 주입시 문제점룩업메소드 인젝션스코프트 프락시커스텀 스코프빈 스코프DI 컨테이너는 빈 간의 의존 관계를 관리할 뿐아니라 빈의 생존 기간도 관리빈의 생성방식을 빈 스코프라고 하며, 개발자는 빈 스코프를 직접 다루지 않아도 됨스코프 종류singletonDI 컨테이너를 기동할 때 빈 인스턴스가 하나 만들어지고, 이후에는 그 인스턴스를 공유하는 방식기본 스코프이므로 별도 스코프처리를 하지 않았다면 singleton으로 간주prototypeDI 컨테이너에 빈을 요청할 때마다 새로운 빈 인스턴스가 만들어짐멀티 스레드 환경에서 오동작이 발생하지 않아야 하는 (thread-safety) 빈이라면 prototype을 활용requestH..

Spring/DI & AOP 2018.08.07

학습 // Spring // DI // ApplicationContext & Bean

업데이트 :: 2018.08.07 ApplicationContext & BeanApplicationContext 가져오기Bean 가져오기AppConfigJava기반XML 기반Annotation 기반컴포넌트 스캔명시적 이름주기ApplicationContext & BeanApplicationContext & Bean을 설정하는 방법들자바기반 설정방식XML기반 설정방식Anotation기반 설정방식ApplicationContext 가져오기ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext context = new AnnotationConfigApplicationContext("..

Spring/DI & AOP 2018.08.07