전체 글 342

[Spring] 의존관계 주입 방법

스프링에서 DI 할 수 있는 방법으로는 생성자 주입, 수정자 주입(setter 주입), 필드 주입, 일반 메서드 주입이 있다. 과거에는 수정자, 필드 주입을 많이 사용했지만 최근에는 생성자 주입 사용을 권장하는 추세라고 한다. DI 주입 방법 생성자 주입 생성자에 @Autowired를 하면 스프링 컨테이너에 @Component로 등록된 빈에서 생성자에 필요한 빈들을 주입한다. 다음과 같은 특징이 있다. 생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다. 불변과 필수 의존 관계에 사용된다. NullPointerException을 방지할 수 있다. 주입받을 필드를 final로 선언 가능하다. 생성자가 1개만 존재하는 경우에는 @Autowired를 생략해도 자동 주입된다. 스프링이 해당 클래스 객체를 생성..

[Spring] Component Scan

스프링은 설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 즉, @Controller, @Component 등 애너테이션을 붙인 클래스들을 스캔하여 빈으로 등록해주는 것이다. 자바 코드에 @Bean이나 XML 등의 설정 정보에 등록할 스프링 빈을 직접 작성해도 되지만, 이렇게 수작업으로 진행하는 경우 설정 정보가 커지거나 누락되는 등 문제가 발생할 수 있기 때문에 컴포넌트 스캔은 매우 유용한 기능이다. 주의할 점 기본적으로 @Component 애너테이션을 빈 등록 대상으로 포함하며, @Controller나 @Service 등은 @Component를 포함하고 있기 때문에 같이 인식한다. 여기서 주의할 점은 @Configuration 또한 @Component 애너테이션이 붙..