spring Aop 이 뭐야?
AOP (Aspect - Oriented Programming, 절단면 프로 그래 밍) 는 OOP (Object - Oriented Programing, 대상 프로 그래 밍) 의 보충 과 보완 이 라 고 할 수 있다.OOP 는 패 키 징, 계승 과 다 형 성 등 개념 을 도입 하여 하나의 대상 차원 구 조 를 구축 하여 공공 행 위 를 모 의 하 는 집합 을 사용한다.우리 가 분 산 된 대상 을 위해 공공 행 위 를 도입 해 야 할 때 OOP 는 무력 해 보인다.즉, OOP 는 위 에서 아래로 의 관 계 를 정의 할 수 있 지만 왼쪽 에서 오른쪽으로 의 관 계 를 정의 하 는 데 적합 하지 않다 는 것 이다.예 를 들 어 로그 기능.로그 코드 는 모든 대상 차원 에 수평 으로 흩 어 져 있 으 며, 흩 어 져 있 는 대상 의 핵심 기능 과 는 무관 합 니 다.안전성, 이상 처리, 투명 한 지속 성 등 다른 유형의 코드 도 마찬가지다.곳곳에 흩 어 져 있 는 무관 한 코드 를 가로 자 르 기 (cross - cutting) 코드 라 고 하 는데 OOP 디자인 에서 대량의 코드 가 중복 되 어 각 모듈 의 재 활용 에 불리 하 다.
반면에 AOP 기술 은 반대로 '횡 절' 이 라 고 불 리 는 기술 을 이용 하여 봉 인 된 대상 내 부 를 분해 하고 여러 가지 유형의 공공 행 위 를 재 활용 가능 한 모듈 에 봉 인 했 으 며 이 를 'Aspect', 즉 측면 이 라 고 부른다.이른바 '방면' 이란 쉽게 말 하면 업무 와 무관 하지만 업무 모듈 에 공동으로 호출 되 는 논리 나 책임 을 봉인 하여 시스템 의 중복 코드 를 줄 이 고 모듈 간 의 결합 도 를 낮 추 며 미래의 조작 성과 유지 가능성 에 유리 하 다 는 것 이다.AOP 는 가로의 관 계 를 대표 하 는데 만약 에 '대상' 이 빈 원통 체 라면 그 중에서 포 장 된 것 은 대상 의 속성 과 행위 이다.그렇다면 측면 을 향 해 프로 그래 밍 하 는 방법 은 마치 날 카 로 운 칼날 처럼 이 공심 원통 체 를 절개 하여 내부 의 소식 을 얻 는 것 과 같다.절개 한 절단면, 즉 이른바 '방면' 이다.그리고 나 서 그것 은 또 교묘 하 게 하늘 을 빼 앗 는 묘수 로 이 갈 라 진 절단면 을 복원 하여 흔적 을 남기 지 않 았 다.
'가로 자 르 기' 기술 을 사용 하여 AOP 는 소프트웨어 시스템 을 두 부분 으로 나 누 었 다. 핵심 관심 사 와 가로 자 르 기 관심 사 이다.업무 처리 의 주요 절 차 는 핵심 관심 사 이 고 그 와 의 관계 가 크 지 않 은 부분 은 횡단 관심 사다.횡단 관심 점 의 특징 중 하 나 는 그들 이 핵심 관심 점 의 여러 곳 에서 자주 발생 하 는데 곳곳 이 기본적으로 비슷 하 다 는 것 이다.예 를 들 어 권한 인증, 로그, 사무 처리 등 입 니 다.AOP 는 시스템 의 다양한 관심 사 를 분리 해 핵심 관심 사 와 횡단 관심 사 를 분리 하 는 역할 을 한다.Avanade 의 고급 방안 구조 사 Adam Magee 의 말 처럼 AOP 의 핵심 사상 은 "응용 프로그램의 상업 논 리 를 지원 하 는 유 니 버 설 서비스 와 분리 하 는 것" 이 라 고 말 했다.
AOP 를 실현 하 는 기술 은 주로 두 가지 로 나 뉜 다. 하 나 는 동적 대리 기술 을 이용 하여 정 보 를 캡 처 하 는 방식 으로 이 정 보 를 장식 하여 기 존의 대상 행위 의 집행 을 대체 하 는 것 이다.둘째, 정적 으로 짜 는 방식 으로 특정한 문법 을 도입 하여 '방면' 을 만 들 고 컴 파일 러 가 컴 파일 하 는 동안 '방면' 과 관련 된 코드 를 짜 낼 수 있 도록 한다.
spring Aop 을 어떻게 사용 합 니까?
우리 가 자주 사용 하 는 것 은 다음 과 같은 몇 가지 가 있다.
1、 AOP
2、 [Java](http://lib.csdn.net/base/javase "Java SE ")
3、@Aspect
4、 Aspcet
개발 절차:
I. 원본 대상 만 들 기
II. 추가 기능 추가 (조언, MethodInterceptor)
III. 삽입점 (PointCut)
IV. 조립 절단면
spring Aop 응용 장면
장면 1: Aop 과 사무
주석 기반 AOP 트 랜 잭 션 관리 사용
tx: annotation - driven 태그 탐색: 탭 은 드라이버 의 트 랜 잭 션 관리 지원 의 핵심 입 니 다.
탭 의 속성: transaction - manager: 기 존 PlatformTransactionManager bean 의 인용 을 지정 합 니 다. 알림 은 이 인용 을 사용 합 니 다.default = "transactionManager" mode: Spring 트 랜 잭 션 관리 프레임 워 크 를 지정 하여 bean 에 게 알 리 는 방식 을 만 듭 니 다.사용 가능 한 값 은 proxy 와 aspectj 가 있 습 니 다.전 자 는 기본 값 으로 알림 대상 이 JDK 에이전트 임 을 표시 합 니 다.후 자 는 Spring AOP 가 AspectJ 를 사용 하여 에이 전 트 를 만 들 것 이 라 고 밝 혔 다.order: 만 든 절단면 순 서 를 지정 합 니 다.대상 에 게 여러 개의 알림 만 있 으 면 이 속성 을 사용 할 수 있 습 니 다.proxy - target - class: 이 속성 이 true 라면 bean 이 실현 하 는 모든 인터페이스 가 아 닌 대상 클래스 를 대리 하고 싶 습 니 다.default="false"
탐색 @ Transactional 설명: 전파, 격 리 단계, 시간 초과 및 허용 되 지 않 는 이상 을 지정 할 수 있 습 니 다. @Transactional 주해 의 속성: propagation: 지정 한 트 랜 잭 션 정의 에 사용 되 는 전파 isolation: 트 랜 잭 션 의 격 리 단 계 를 설정 합 니 다 timeout: 지정 한 트 랜 잭 션 의 슈퍼마켓 (초) readOnly: 지정 한 트 랜 잭 션 의 시간 초과 noRollback For: 목표 방법 으로 던 질 수 있 는 이상 으로 구 성 된 그룹 이지 만 알림 은 트 랜 잭 션 rollback For: 이상 으로 구 성 된 배열 을 제출 합 니 다.만약 목표 방법 이 이러한 이상 을 던 졌 다 면, 통 지 는 사 무 를 되 돌 릴 것 이다.
주 해 를 바탕 으로 하 는 사무 관리 소결: 클래스 에 정의 되면 모든 방법 이 같은 방식 을 사용 하고 어떤 read 는 너무 많은 것 을 주 었 다 고 불평 합 니 다.모든 방법 에 주 해 를 정의 하면 번 거 로 울 것 이다.(XML AOP 사무 관 리 를 사용 하면 이런 상황 을 더욱 잘 처리 할 수 있다)
장면 2: Aop 과 일지
AspectJ 프레임 워 크 를 사용 하여 작업 로 그 를 기록 합 니 다.
장면 3: Aop 과 캐 시
1. 차단 방법의 @ Cache 설명 을 가 져 오고 캐 시 키 를 생 성 합 니 다.
2. 캐 시 키 를 통 해 캐 시 에서 데 이 터 를 가 져 옵 니 다.
3. 캐 시 에 명중 하면 다음 절 차 를 실행 합 니 다.
4. 캐 시가 명중 되 지 않 으 면 다음 절 차 를 실행 합 니 다.
캐 시 는 높 은 병발 장면 에서 시스템 의 성능 과 안정성 문 제 를 해결 하 는 데 사용 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.