@Autowired
@Autowired는 Spring Framework에서 객체를 자동으로 주입하기 위해 사용되는 어노테이션 중 하나입니다.
Spring에서는 객체를 직접 생성하는 대신, 컨테이너에서 생성된 객체를 사용하는 것이 일반적입니다. @Autowired 어노테이션을 사용하면, Spring 컨테이너에서 해당 타입의 Bean을 찾아 객체를 자동으로 주입할 수 있습니다.
@Autowired 어노테이션을 사용하려면, 해당 클래스나 필드에 @Component, @Service, @Repository, @Controller 등의 스테레오 타입 어노테이션이 필요합니다. 이러한 어노테이션을 사용하여 클래스를 Bean으로 등록하면, @Autowired 어노테이션을 사용하여 해당 Bean을 주입할 수 있습니다.
아래는 @Autowired 어노테이션을 사용하여 userService 필드에 UserService 타입의 Bean을 자동으로 주입하는 예시 코드입니다.
@Service
public class UserServiceImpl implements UserService
{
@Autowired
private UserRepository userRepository;
// ...
}
위 코드에서는 @Autowired 어노테이션을 사용하여 UserRepository 타입의 Bean을 자동으로 주입하여 사용하고 있습니다. UserRepository 클래스에는 @Repository 어노테이션이 붙어 있어, Spring 컨테이너에서 해당 클래스의 Bean을 생성하여 등록하고 있습니다.
@Autowired 어노테이션은 생성자, 필드, 메서드의 매개변수에도 사용할 수 있습니다. 이를 통해 객체 생성 시점에 필요한 의존 객체를 주입할 수 있습니다. 또한, Spring 4.3 이후 버전에서는 @Autowired 어노테이션 대신 @Resource 어노테이션 또는 생성자 주입을 사용하는 것이 권장되고 있습니다.