private final
한 번 값이 설정되면 바꿀 수 없다.
목적 : 객체가 생성될 때 초기값이 정해지고 이후 변경되지 않도록 보장.
public class UserService {
private final UserRepository userRepository
public UserService(UserRepository userRepository) { // 생성자를 통해 값 설정
this.userRepository = userRepository;
}
}
private final 덕분에 userRepository는 처음 할당된 이후 변경할 수 없음.
@Autowired
Spring이 자동으로 객체(빈, bean)를 넣어주는 기능.
목적 : 직접 객체를 만들지 않고, Spring이 관리하는 객체(빈)를 자동으로 주입받음.
@Service
public class UserService {
@Autowired
private UserRepository userRepository; // Spring이 자동으로 넣어줌
}
@Autowired를 붙이면 Spring이 userRepository를 알아서 주입해줌.
private final + @Autowired
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired // 생략 가능 (Spring이 자동 감지)
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
private final이 userRepository 값이 변경되지 않도록 보장.
@Autowired가 Spring이 UserRepository를 찾아서 넣어줌.
'Spring Boot' 카테고리의 다른 글
| Spring 예외 처리 GlobalExceptionHandler 사용 이유 (0) | 2025.02.27 |
|---|---|
| RequestDto, ResponseDto 사용하는 이유 (0) | 2025.02.20 |
| RequestParam vs PathValue 차이 (0) | 2025.02.13 |
| [Spring Boot] HTTP 상태 코드 (HTTP Status Code) (2) | 2024.12.19 |
| [Spring Boot] API, REST API, RESTful API (0) | 2024.12.11 |