programing

가능한 AOP 사용 사례는 무엇입니까?

lastmoon 2023. 8. 15. 11:25
반응형

가능한 AOP 사용 사례는 무엇입니까?

애플리케이션 설계에 AOP를 효과적으로 참여시킬 수 있는 가능한 사례는 무엇인지 그림으로 만들고 싶습니다.제가 지금까지 만난 것은 다음과 같습니다.

  • 벌목 관련
  • 보안 검사
  • 거래 관리
  • 레거시 응용 프로그램 수정

또 다른 건 없으세요?

(반드시 스프링의 프록시 기반 AOP일 필요는 없고 JBoss AOP일 필요는 없습니다.)

(관련 질문)

이를 사용하는 두 가지 예를 들어 보겠습니다.

  • 원격 관리를 위해 JMX에 개체를 자동으로 등록합니다.클래스에 주석이 달린 경우@AutoRegister주석, 우리는 해당 클래스의 새로운 인스턴스화를 감시하고 자동으로 JMX에 등록하는 측면이 있습니다.

  • 감사 기록(골드 표준 AOP 사용 사례).다소 거칠지만 일반적인 접근 방식은 감사 가능한 작업을 나타내는 메서드에 주석을 다는 것입니다.Spring Security와 같은 기능을 결합하면 다음과 같은 이점을 얻을 수 있습니다.

    • 사용자가 누구인지
    • 그들이 어떤 방법을 호출하고 있는지
    • 그들이 제공하는 데이터는 무엇입니까?
    • 메서드가 호출된 시간
    • 호출의 성공 여부(예: 예외가 발생한 경우)
  • 예외 처리: 끔찍한 시도 목록(예: 캐치, 캐치, 캐치 등)을 반복할 필요가 없습니다. 또한 예외 처리는 일관성이 보장됩니다.
  • 성능 모니터링:측면을 사용하는 것은 방해가 되지 않으므로 매우 유용하며, 사후에 수행할 수 있으며 더 이상 필요하지 않을 때 끌 수 있습니다.

와우... 10년 전 - AOP를 위한 것이 많지 않았습니다...여기 몇 가지 더 있습니다.

  • 생성자에 액세스할 수 없는 개체(예: jpa 엔티티)를 사용자 지정할 수 있습니다.
  • 보안 규칙 구현(보안에 따르면 사용자는 이 메서드를 호출할 수 없습니다. AOP는 이를 구현할 수 있습니다.)
  • 트랜잭션 관리자(시작, 커밋, 롤백)
  • 캐싱 - 메서드의 결과를 캐시하고 다시 호출하지 않습니다.

적용 가능성 측면에서 AOP의 적용 범위를 보려면 Aspect-Orientated-Software-Development-Use-Cases라는 책을 읽어보시기를 정말 권장합니다.이 책은 AOP를 사용하여 기능 및 비기능 요구사항의 사용 사례를 상세히 설명합니다.그런 다음 로깅, 추적, 보안 등보다 더 많은 요구 사항에 사용할 수 있음을 알게 될 것입니다.

메서드가 상태 비저장인 경우 메서드 수준 캐싱(즉, 동일한 매개 변수 값으로 반복적으로 호출할 때 동일한 값을 반환함).DAO 방법의 경우 데이터베이스 적중을 방지하므로 더욱 효과적입니다.

  • 읽기/쓰기 잠금.동일한 스니펫을 복제하는 대신 읽기 잠금 또는 전용 잠금이 필요한 메서드를 정의하기 위해 측면을 사용했습니다.

소프트웨어 라이센스 관리를 위해 사용합니다. 즉, 컴퓨터에 특정 라이센스가 설치된 경우에만 소프트웨어가 실행되도록 합니다.보안 검사의 한 형태이기 때문에 나열된 용도와 크게 다르지 않습니다.

여기에 실제 구현을 설명하는 블로그 항목을 게시했습니다.

당신이 나열한 모든 것 외에 AOP를 효과적으로 사용하는 한 가지 방법은 검증일 수 있습니다.사용자 입력 또는 비즈니스 개체의 유효성을 검사합니다.

꼭 봐야 할 관련 기사들.

다음과 같은 측면도 권장합니다.

  • 비동기 메서드 호출
  • 모니터링

Spring 및 tcServer(개발자)를 사용하면 @Component 주석을 사용하여 모든 Spring 콩을 쉽게 모니터링할 수 있습니다.사용된 시간, 예외를 포함한 입력 및 반환 데이터를 볼 수 있습니다.

속성 변경됨 및 유사한 오류를 알립니다.

기본적으로 이렇게 보이는 코드가 있는 곳이면 어디든 - 측면을 사용하면 완료됩니다.

코드 계약의 런타임 검사입니다.에 대한 코드 계약.NET 사용 AOP:

런타임 확인.우리의 바이너리 리라이터는 프로그램 실행의 일부로 확인되는 계약을 주입하여 프로그램을 수정합니다.

AOP를 달성하기 위해 AspectJ를 사용합니다.위에서 언급한 사용 사례 이외의 사용 사례는 다음과 같습니다.

  • 메서드 호출에 대한 액세스를 소수의 클래스로만 제한합니다.
  • 선택한 메서드/클래스/필드에 자동으로 주석을 달 수 있습니다.

언급URL : https://stackoverflow.com/questions/2197051/what-are-the-possible-aop-use-cases

반응형