[TIL] Spring / Java

스프링과 스프링부트

스프링

  • DI, IOC 를 통해 객체간 결합을 느슨하게 만들어서 재사용성을 높여줌, 중복코드 제거
  • 다른 프레임워크와의 통합, 비지니스 로직에 집중

    스프링 부트

  • 최소한의 설정으로 스프링프레임워크를 사용할수 있게 해주는 것
  • 자동설정, 쉬운 의존성 관리, 내장서버

스프링의 DI

  • Dependency Injection 객체들간의 의존성을 줄이기 위한 spring의 IOC(Inversion of Control) 컨테이너의 구체적인 구현 방식
  • DI는 기존처럼 개발 코드부분에서 객체를 생성하는 것이 아닌, 팩토리 패턴처럼 객체의 생성과 테이터를 주입만 담당하는 Factory에 해당하는 별도의 공간에서 객체를 생성하고 데이터간의 의존성을 주입해 개발코드에서는 이를 가져다 씀으로써 의존성을 줄이는 방식
  • Factory 패턴의 클래스의 역할을 스프링의 환경설정 파일이 담당
  • 설정파일을 통해 객체간의 의존관계를 설정 Assembler가 객체간의 의존관계를 정의
  • 객체는 직접의존하고 있는 객체를 생성하거나 검색할 필요가 없음

IoC (Inversion of Control)

  • Servlet, bean을 관리하는 컨테이너가 인스턴스의 생성 제어를 반환 해주는 것

[참고]

  • https://biggwang.github.io/2019/08/31/Spring/IoC,%20DI%EB%9E%80%20%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C/