오류 사항이 있을 수 있습니다. 잘못된 부분은 피드백 부탁드립니다.
Spring Framework의 가장 중요한 3요소는 DI,IOC,AOP 이다.
오늘은 DI(Dependency Injection) - 의존성 주입 이란 무엇인지 알아보겠다.

위 그림을 보면 우리가 기존에 사용했던 방식과 DI를 사용한 방법의 차이를 볼수있다 기존에 사용했던 방식은 메인모듈이 직접 의존성을 주입하여 비교적 의존성이 높지만, 의존성 주입자 즉 구현체를 만들어 메인모듈에 주입하여 사용하여 간접적으로 주입하는것이 의존성이 더 낮아진다. 이를 디커플링(Decoupling) 이라고 한다.
그러면 DI를 어떻게 구현할수 있는지 알아보자
먼저 구현체와 추상화레이어를 정의 해야한다.
먼저 추상화 레이어로 사용할 service인터페이스를 생성한다.
public interface MainService{
String mainMethod();
}
다음으로 mainService 인터페이스를 구현할 구현체 클래스를 만듭니다.
@Service
public class MainSviceImpl implements MainService{
@Autowired
//Dao 혹은 Mapper
@Override
public String mainMethod {
return Dao,Mapper.이름;
}
}
이러면 service를 사용할 준비는 끝났다
이제 controller를 살펴보자.
controller에서 사용하는것은 간단하다.
@Controller
@RequestMapping("main")
public class MainConroller {
@Autowired
MainService mainService;
이러면 MainController에 의존성을 주입한것이다.