Spring
IoC가 개발자 대신 객체를 주입해주는 것의 편리함
dev_SiWoo
2023. 10. 24. 22:22
1. 스프링을 사용할 경우
@SpringBootApplication
public class MainApp {
public static void main(String[] args) {
SpringApplication.run(MainApp.class, args);
}
}
@RestController
public class SignUpController {
private final UserRepositoryService userRepositoryService;
@Autowired
public SignUpController(UserRepositoryService userRepositoryService) {
this.userRepositoryService = userRepositoryService;
}
}
2. 스프링을 사용하지 않을 경우
public class App {
public static void main(String[] args) {
UserRepository userRepository = new UserRepositoryImpl(); // 개발자가 직접 객체 생성
UserRepositoryService userRepositoryService = new UserRepositoryServiceImpl(userRepository); // 개발자가 직접 의존성 주입
SignUpController signUpController = new SignUpController(userRepositoryService); // 개발자가 직접 의존성 주입
}
}
이처럼 스프링 컨테이너가 알아서 의존성을 관리하고 주입해주기 때문에, 개발자는 이에 신경쓸 필요가 없어서
비즈니스 로직에만 집중할 수 있다.