기술/Java - 강의 정리
-
빈 스코프기술/Java - 강의 정리 2022. 8. 5. 13:19
빈 스코프 스프링은 다양한 스코프를 지원한다. 싱글톤 - 기본 스코프, 단 하나만 존재한다. 프로토타입 - 빈을 요청할때마다 매번 생성한다. 주의해야할 점은 생성할 때만 관여하지만 소멸은 관리되지 않는다. 요청 - HTTP 요청 세션 - HTTP 세션 어플리케이션 - 서블릿 컨텍스트 싱글톤 빈과 프로토타입 빈을 함께 사용 시 싱글톤 빈 안에 프로토타입 빈을 주입받을 시 주입받을 때만 새로 생성되고, 이후부터는 새로 생성되지 않는다. 해결책 ObjectProvider 스프링에서 지정된 빈을 컨테이너에서 찾아주는 DL 서비스를 제공해주는 것이 ObjectProvider 이다. 편의 기능을 많이 제공해준다. private ObjectProvider objectProvider; public void logic(..
-
빈 생명주기 콜백기술/Java - 강의 정리 2022. 8. 5. 13:19
빈 생명주기 콜백 의존관계 주입이 끝난 시점을 제공하기 위한 다양한 기능을 제공한다. 또한 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다. 따라서 안전하게 종료 작업을 진행할 수 있다. 인터페이스 InitializingBean, DispossableBean 코드가 스프링 인터페이스에 의존하게 되는 문제가 있다. 초기화, 소멸 메서드의 이름을 변경할 수 없다. 내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없다. Bean initMethod, destroyMethod destroyMethod 의 특별한 동작 라이브러리에서 일반적으로 close , shutdown 이름으로 종료 메서드로 제공하기 때문에 destoryMethod 는 기본적으로 (inferred) 로 되어있는데 close 및 sh..
-
의존 관계 주입 방법기술/Java - 강의 정리 2022. 8. 5. 13:18
의존 관계 주입 방법 AutoWired Component 를 사용할 때 의존성을 주입하기 위해 사용된다. 생성자가 하나일 때 생략 가능하다. 의존 관계 주입 방법 생성자 주입 생성자 호출 시점에 딱 한번만 호출되는 것이 보장된다. 불변, 필수 의존관계에서 사용된다. 수정자 주입 선택, 변경 의존관계에서 사용된다. 필드 주입 외부에서 변경이 불가능해서 테스트하기 힘들다. DI 프레임워크가 없으면 아무것도 할 수 없다. 일반 메서드 주입 잘 사용하지 않는다. 옵션 처리 Autowired(required = false ) @Nullable Optional 조회되는 빈이 2개 이상일 때 타입으로 등록되는데 하나의 타입에 두개 이상의 빈이 등록되었을 때 에러가 발생한다. 해결 방법 Autowired 필드 명 매칭..
-
빈 생성 방법기술/Java - 강의 정리 2022. 8. 5. 13:18
빈 생성 방법 Bean, Configuration 수동으로 빈 컨테이너에 등록하는 방식이다. @Configuration public class ResourceConfig { @Bean public Resource resource() { return new ResourceImpl(); } } Component Component 어노테이션이 붙어있는 클래스를 찾아 자동으로 등록해주는 컴포넌트 스캔 기능을 이용해 등록하는 방식이다. @Component class ResourceImpl() { } 기본적으로 같은 패키지 하위의 Component 를 모두 찾아낸다. 스프링부트도 이 방법을 기본적으로 제공한다. 자동, 수동 실무 운영 기준 애플리케이션은 크게 업무 로직과 기술 지원 로직으로 나눌 수 있다. 업무 로..