@Autowired: 6개의 글
[Spring] 애노테이션을 이용한 빈 설정 방법 정리 빈 설정을 하기 위해 사용되는 스프링 애노테이션 @Required, @Autowired, @Qualifier, @Value과 JSR-250 애노테이션 @PostConstruct, @PreDestroy, @Resource에 대해 알아보자 이 애노테이션들을 사용해 기존에 XML 빈 설정 파일에 모두 작성하던 빈 설정을 빈 클래스에 직접 설정할 수 있다. XML 설정에 애노테이션 빈 설정을 사용하기 위한 코드 추가 context 네임 스페이스와 코드를 추가한다. 이렇게 설정하면 빈 설정을 XML 파일이 아닌 빈 클래스의 애노테이션을 검색해 반영한다. @Required - setter에 붙여 반드시 주입해야하는 프로퍼티로 설정하는 애노테이션 - Spring..
[Spring] 의존성 주입 애노테이션 정리 - @Autowired, @Resource, @Inject 1. @Autowired @Autowired는 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입한다. @Autowired는 필드, 생성자, Setter에 붙일 수 있다. 단, @Autowired를 필드, Setter에 붙여서 사용할 경우 반드시 기본 생성자가 정의되어 있어야 한다. 1) @Autowired - 필드 주입 public class WordRegisterServiceUseAutowired { @Autowired private WordDao wordDao; public WordRegisterServiceUseAutowired() { } } 2) @Autowired - 생성자 주입 p..
[Spring] @Autowired 동작 원리 - BeanPostProcessor @Autowired 애노테이션을 생성자, setter, 필드에 붙이기만 함으로써 간편하게 의존성을 주입받을 수 있는데 어떻게 그렇게 동작할수 있는지, 그 원리에 대해 알아보자. 결론부터 말하자면 @Autowired 애노테이션은 BeanPostProcessor라는 라이프 사이클 인터페이스의 구현체인 AutowiredAnnotationBeanPostProcessor에 의해 의존성 주입이 이루어진다. BeanPostProcessor는 빈의 initializing(초기화) 라이프 사이클 이전, 이후에 필요한 부가 작업을 할 수 있는 라이프 사이클 콜백이다. 그리고 BeanPostProcessor의 구현체인 AutowiredAnno..
[Spring] @Autowired의 다양한 사용 방법 - required, Primary, Qualifier 1. 의존객체 타입의 빈이 없는 경우 다음과 같이 BookService 클래스와 BookRepository 인터페이스가 있다. import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookService { BookRepository bookRepository; @Autowired public BookService(BookRepository bookRepository) { this.bookRepository = boo..
[Spring] 빈을 설정하는 3가지 방법 - XML, JAVA, Component Scan 새 프로젝트를 생성한다. 예제 코드에 필요한 의존성을 받기 위해 spring boot 프로젝트를 생성할 것이다. 참고로 예제 코드에는 이 의존성이 필요하다. Spring Initializr를 선택하고 Next를 클릭한다. Group, Artifact, Name을 입력하고 Next를 클릭한다. Group은 패키지명을 적어준다. (보통 도메인명을 뒤집어서..) Web - Spring Web을 넣고 Next를 클릭한다. Finish를 클릭해서 신규 프로젝트 생성을 완료한다. Spring boot 프로젝트를 만들었다. pom.xml을 열어보면 spring boot 2.2.5 버전으로 만들어졌음을 확인할 수 있다. 우측의..
[Spring] 의존성 주입(DI, Dependency Injection)의 세가지 방법 Spring은 @Autowired 애노테이션을 이용한 다양한 의존성 주입 방법을 제공한다. @Autowired 애노테이션은 Spring에게 의존성을 주입하라는 지시자 역할로 쓰이는데 생성자, 필드, 세터에 붙일 수 있다. 🚨 Spring IoC 컨테이너에 의한 의존성 주입은 빈(Bean) 끼리만 가능하다. 1. 생성자 주입 @Component public class SampleController { private SampleRepository sampleRepository; @Autowired public SampleController(SampleRepository sampleRepository) { this.sam..