본문 바로가기
📔개발자 일기 | | TIL

[20220425] TIL

by 캔 2022. 4. 25.

 

TIL

싱글턴 빈 내부에서 새로운 프로토타입 빈 인스턴스 얻는 방법

* 싱글턴 빈 클래스가 ApplicationContextAware 인터페이스를 구현(implements)한다.

* 스프링 beans 스키마의 <lookup-method> 엘리먼트를 사용한다.

* 스프링 beans 스키마의 <replace-method> 엘리먼트를 사용한다.

 

자동연결(autowire) - 스프링이 자동으로 빈 의존 관계를 해결. bean 엘리먼트의 autwired 속성에 다음의 값을 주어 설정한다.

* 종류: byType(타입으로), constructor(생성자로), byName(이름으로), default/no(비활성화)

자동연결의 한계: 생성자 인수, 프로퍼티의 타입이 단순 자바 타입인 경우 자동연결 사용불가. 자동연결 사용하면 애플리케이션 구조가 감춰지기 대문에 대규모 애플리케이션에서는 유지보수를 위해 자동연결을 권장하지 않음.

 

5장 빈과 빈 정의 커스텀화하기

빈이 초기화되기 전에 커스텀 init 로직을 실행하려면 빈 엘리먼트의 init-method 속성에 init 메서드 이름을, 빈 인스턴스를 포함한 스프링 컨테이너가 제거되기 직전에 커스텀 destory 로직을 실행하려면 destroy-method에 destroy 메서드 이름을 지정하면 된다.

 

모든 빈에 init, destroy 메서드를 정의하려면 beans 엘리먼트에 default-init-method, default-destroy-method에 각각을 지정해주면 된다.

 

InitializingBean, DisposibleBean...생애주기 인터페이스 -> 좀 더 공부 필요.

 

@PostConstuct, @PreDestory 애너테이션: @PostConstuct는 해당 메서드를 init메서드로 만든다. @PreDestory는 해당 메서드를 destroy 메서드로 만든다.

 

BeanPostProcessor - 새로 생성된 빈 인스턴스가 스프링 컨테이너에 의해 초기화되기 전과 후에 상호작용할 수 있게 해 준다.

 

* BeanPostProcessor 인터페이스를 implements하는 빈은 특별하며, 스프링 컨테이너가 자동으로 감지해서 실행한다.

 

 

 

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220427] TIL  (0) 2022.04.27
[20220426] TIL  (0) 2022.04.26
[20220422] 개발자 일기  (0) 2022.04.22
[20220421] 개발자 일기  (0) 2022.04.21
[20220420] 개발자 일기 & TIL  (0) 2022.04.20