What is @Autowired and how does it work?

Beginner

Answer

@Autowired enables automatic dependency injection. Spring automatically injects matching beans by type. It can be used on:

  • Constructors
  • Setter methods
  • Fields
  • Method parameters
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository; // Field injection
    
    @Autowired
    public UserService(UserRepository userRepository) { // Constructor injection
        this.userRepository = userRepository;
    }
}