보통 Controller나 Service 내의 리포지토리를 생성할 때 자주 보이는 어노테이션이다.
@Autowired
private UserRepository userRepository;
Java
복사
이는 Spring이 관리하는 Singleton 패턴의 일종으로, UserRepository 클래스의 Bean이 등록되어있다면 userRepository 멤버에 DI(의존성 주입)를 해준다.
Bean으로 등록되어있지 않으면 이 과정이 불가능하지만, 스프링 어플리케이션은 시작과 동시에 유효경로의 컴포넌트들을 스캔한다. 이 과정중에 Bean으로 등록되는 객체들이 있으며, JpaRepository의 상속을 받은 UserRepository또한 마찬가지이다. Autowiring이 가능한 이유이다.