DI 장점
- 의존성으로부터 격리시켜 코드테스트에 용이하다
- DI를 통하여,불가능한 상황을 Mock와 같은 기술을 통하여,안정적으로 테스트 가능하다
- 코드를 확장하거나 변경 할때 영향을 최소화한다(추상화)
- 순환 참조를 막을수있다
--> - 외부로부터 내가 사용할 객체를 주입받음- 주입을 해주는애가 스프링 컨테이너
스프링 어플리케이션은 대부분 특별한 경우를 제외하고는 MVC 웹 어플리케이션에서는 Web Layer, Business Layer,Data Layer로 정의
- Web Layer : REST API를 제공하며,Client 중심의 로직 적용
- Business Layer : 내부 정책에 따른 logic를 개발하며, 주로 해당 부분을 개발
- Data Layer : 데이터 베이스 및 (다른서버와의) 외부와의 연동을 처리
AOP 에서 많이 나오는것.
A사 B사 C사 가 있는데 공통적으로 들어가는게있음
인코딩을 할수있음
Annotation | 의미 |
---|---|
@Aspect | 자바에서 널리 사용하는 AOP프레임워크에 포함되며,AOP를 정의하는 Class에 할당 |
@Pointcut | 기능을 어디에 적용시킬지,메소드?Annotation?등 AOP를 적용시킬 지점을 설정 |
@Before | 메소드 실행하기 이전 |
@After | 메소드가 성공적으로 실행후,예외가 발생되더라도 실행 |
@AfterReturing | 메소드 호출 성공 실행시 (Not Throws) |
@After Throwing | 메소드 호출 실패 예외 발생(Throws) |
@Around | Before/after 모두 제어 |