Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 디자인 패턴
- 안드로이드
- spring security
- 낙관적락 비관적락 차이
- 개발
- Optimistic Lock
- JPA Lock
- 스프링 로그
- 캠프
- Pessimistic Lock
- Redis
- spring
- annotation
- 서버개발캠프
- 스마일게이트
- 스프링
- JPA
- Inno DB
- JPA 동시성
- JPA 비관적락
- flask
- bean
- spring security 인증
- 스프링 log
- Android
- component
- Transaction isolation level
- 서버
- JPA 낙관적락
- 암호화
Archives
- Today
- Total
모르는게 많은 개발자
[Spring] DI 개념 정리 본문
반응형
스프링을 공부하면서 가장 먼저 배우는게 DI 의존성 주입이라 개념을 정리해보려 한다.
1. DI(Dependency Injection)
처음에 의존성 주입이라는 것을 보고 단어부터가 이미 너무 생소한 느낌을 받았지만 강의를 찾아보면서 개념을 쉽게 이해했다.
간단하게 예제 코드로 살펴보자.
class A1 {
B b;
public A1() { //A라는 객체가 생성될 때 B라는 객체도 새롭게 생성 -> 의존성 높음
b = new B();
}
}
class A2 {
B b;
public A2(B b) {
this.b = b //Construction Injection
}
public setB(B b) { //B객체를 외부에서 가져와 A객체에 Injection(주입) -> 의존성 낮음
this.b = b; //Setter Injection
}
}
위 두개의 코드의 차이
- A1은 객체가 생성될 때 B객체도 같이 직접 생성
- A2는 객체가 생성되어도 외부 B객체(Dependency)를 주입(Injection)하는 형식
- A2같은 방식이 DI라고 볼 수 있음
좀 더 이해가 쉽게
Dependency = 부품
Injection = 조립
으로 놓고 보면 A2객체인 부품에 B객체인 부품을 조립한다라고 해석 하면 좀 더 이해가 쉬울 것 같다.
2. DI 장점
- 종속성 감소(변경에 민감하지 않음)
- 재사용성 증가
- 단위 테스팅의 편리함
참고
https://www.youtube.com/watch?v=WjsDN_aFfyw&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=3
반응형
'스프링' 카테고리의 다른 글
[Spring] Boot와JPA(Mysql)을 이용한 Rest API 간단 예제 (0) | 2020.05.07 |
---|---|
[Spring] XML Configuration와 Java Configuration 비교 (0) | 2020.04.08 |
[Spring] @Component를 이용한 객체 생성 방법 (0) | 2020.04.08 |
[Spring] @Autowired @Qualifier 개념/예제 (0) | 2020.04.04 |
[Spring] AppicationContext, XML Configuration 예제 (0) | 2020.04.02 |
Comments