DI
: Dependency Injection
DI란 사용하는 객체를 직접 생성하여 만드는 것이 아니라
컨테이너가 빈의 설정 정보를 읽어와 자동으로 해당 객체에 연결하는 것을 의미한다.
의존성을 주입 받게 되면 이후 해당 객체를 수정해야 할 상황이 발생했을 때
소스 코드의 수정을 최소화할 수 있다.
DI 장점 -
개발자가 작성해야 할 코드가 단순해진다.
각 객체 간의 종속 관계(결합도)를 해소할 수 있다.
객체간의 종속 관계(결합도) :
한 클래스에서 필드 객체를 생성할 때 발생하는 두 객체간의 관계를 나타냄
각 객체간의 내용이 수정될 경우 영향을 미치는 정도를 의미한다.
Annotation
@Annotation 종류 – Bean 등록 시 사용
@Component - 객체(컴포넌트)를 나타내는 일반적인 타입으로 태그와 동일한 역할
@Repository - 퍼시스턴스(persistence) 레이어, 영속성을 가지는 속성(파일, 데이터베이스)를 가진 클래스
@Service - 서비스 레이어, 비즈니스 로직을 가진 클래스
@Controller - 프리젠테이션 레이어, 웹 애플리케이션에서 View에서 전달된 웹 요청과 응답을 처리하는 클래스