DI

PRESENT_22·2022년 12월 29일
0
post-thumbnail

DI,IOC

DI = 의존성 주입
우선 DI를 이해하기 전에 강한 결합을 알아야한다
강한 결합은 한마디로 얘기해서 객체간의 강한 결합인데

위와 같이 코드를 작성한다면

컨트롤러를 5개 생성했을때 모두 같은 service와 repository를 쓰기때문에 repository를 바꾸려면 모든 코드를 바꾸어야한다
즉 강한결합 -> 유지보수 ↓

그래서 이걸 의존성을 주입해 느슨한 결합을 추구하는게 DI이다.

어떻게 코드를 작성해서 바꾸는건 실제로 해 보는게 제일 나을거같아서 참고는 안 했다

DI전에는 코드의 방향이 → 인데 의존성을 주입하고 나서는 ←이다
이러한 코드의 흐름이 바뀌는걸 IOC 제어의 역전이라고 한다.

https://velog.io/@damiano1027/Java-%EA%B0%95%ED%95%9C-%EA%B2%B0%ED%95%A9%EA%B3%BC-%EC%95%BD%ED%95%9C-%EA%B2%B0%ED%95%A9

Bean

Bean: 스프링이 관리하는 객체
스프링 ioc 컨테이너 :Bean을 모아둔 통

ex:
스프링 ioc 컨테이너
-한식 Bean
-양식 Bean
-중식 Bean
Bean 등록
@Component 어노테이션을 쓰면됨
범위:@ComponentScan 에 설정해 준 packages 위치와 하위 packages 들

스프링에 등록된 Bean은 클래스의 앞글자 소문자로 변경됨.

수동 등록

@Configuration 애노테이션 사용

Bean 사용법
@Autowired
주입하려는 변수 위에 @Autowired 달면 생성된 Bean 객체를 자동으로 넣어줌

멤버변수 선언 후 메소드 위에 올려도 됨

0개의 댓글