IOC/DI,AOP

kkjj·2022년 5월 13일
0

IOC(Inversion Of Control)

  • 스프링에서는, 일반적인 JAVA객체를 new 로 생성하여 개발자가 관리하는것이 아닌. Spring Container 에 모두 맡긴다
    즉, 개발자에서 -> 프레임 워크 제어의 객체 관리의 권한이 넘어갔음 으로 "제어의 역전"이라고 한다, 싱글톤 형태로 관리가 된다. 스프링 프레임워크의 큰특징이고 다른 프레임워크에서 볼수없는 특징이다.

DI(Dependency Injection)

DI 장점

  • 의존성으로부터 격리시켜 코드테스트에 용이하다
  • DI를 통하여,불가능한 상황을 Mock와 같은 기술을 통하여,안정적으로 테스트 가능하다
  • 코드를 확장하거나 변경 할때 영향을 최소화한다(추상화)
  • 순환 참조를 막을수있다
    --> - 외부로부터 내가 사용할 객체를 주입받음
  • 주입을 해주는애가 스프링 컨테이너

AOP (Aspect Oriented Programming)

관점 지향 프로그램

스프링 어플리케이션은 대부분 특별한 경우를 제외하고는 MVC 웹 어플리케이션에서는 Web Layer, Business Layer,Data Layer로 정의

  • Web Layer : REST API를 제공하며,Client 중심의 로직 적용
  • Business Layer : 내부 정책에 따른 logic를 개발하며, 주로 해당 부분을 개발
  • Data Layer : 데이터 베이스 및 (다른서버와의) 외부와의 연동을 처리

횡단 관심

  • AOP 에서 많이 나오는것.

  • A사 B사 C사 가 있는데 공통적으로 들어가는게있음

  • 인코딩을 할수있음

주요 Annotation

Annotation의미
@Aspect자바에서 널리 사용하는 AOP프레임워크에 포함되며,AOP를 정의하는 Class에 할당
@Pointcut기능을 어디에 적용시킬지,메소드?Annotation?등 AOP를 적용시킬 지점을 설정
@Before메소드 실행하기 이전
@After메소드가 성공적으로 실행후,예외가 발생되더라도 실행
@AfterReturing메소드 호출 성공 실행시 (Not Throws)
@After Throwing메소드 호출 실패 예외 발생(Throws)
@AroundBefore/after 모두 제어
profile
백엔드

0개의 댓글