💡 스프링의 핵심 가치 :
어플리케이션 개발에 필요한 기반을 제공해서,
개발자가 비즈니스 로직 구현에만 집중할 수 있게 하자!
- keyword : 제어권
- meaning : 객체 관리 제어권을 스프링 컨테이너(or IoC 컨테이너)에게 위임한다.
: 기존 자바의 개발 방식과 달리, 객체의 생명주기를 외부에 위임한다. : 여기에서 외부란, 스프링 컨테이너 또는 IoC 컨테이너를 의미한다.
: 제어의 역전을 통해 의존성 주입(DI), 관점 지향 프로그래밍(AOP) 등이 가능해진다.
- keyword : IoC의 방법
- how : (1) 생성자 (2) 필드 객체 선언 (3) setter
(1) 생성자를 통한 주입 : spring 최신 버전의 경우 private final 로 넣을 수 있다.
@RestController
public class RegistrationController {
private final RegistrationService registrationService;
public RegistrationController(RegistrationService registrationService) {
this.registrationService = registrationService;
}
}
(2) 필드 객체 선언 : @AutoWired를 통해 맴버 객체로 선언한다.
@RestController
public class RegistrationController {
@AutoWired
private RegistrationService registrationService;
}