자바 에이전트 모델
프 록 시 모드 가 뭐 예요?
프 록 시 모델 은 디자인 모델 로 쉽게 말 하면 소스 코드 를 바 꾸 지 않 은 상황 에서 목표 대상 에 대한 기능 확장 을 실현 하 는 것 이다.
에이전트 의 역할 은 목표 코드 를 수정 하지 않 은 상태 에서 목표 에 대한 접근 을 제어 할 수 있 고 그 전후 에 자신의 업무 처리 코드 를 추가 할 수 있 으 며 목표 방법 에 대한 접근 을 막 을 수 있어 필터 와 차단기 와 유사 한 역할 을 한다.
에이전트 모드
요약: 불확실 한 상황 에서 정적 대 리 를 사용 하지 않 으 면 코드 를 대필 하면 클래스 가 발생 하고 클래스 가 발생 하면 폭발 합 니 다.
static Object newProxyInstance(ClassLoader loader, Class>[] interfaces,InvocationHandler h )
:
ClassLoader loader:
현재 대상 을 지정 하여 클래스 로 더 를 사용 하고 쓰기 고정 Class>[] interfaces:
목표 대상 이 실현 하 는 인터페이스의 유형, 쓰기 고정 InvocationHandler h
: 사건 처리 인 터 페 이 스 는 하나의 실현 류 에 들 어가 야 하고 보통 익명 내부 류 생산 된 프 록 시 클래스 $Proxy 0 extends Proxy implements targerInterface
2. CGLib 동적 에이전트
원리: CGLib 를 사용 하여 동적 대 리 를 실현 하고 프 록 시 클래스 가 인터페이스의 제한 을 전혀 받 지 않 으 며 CGLib 바 텀 은 ASM 바이트 코드 생 성 프레임 워 크 를 사용 하여 바이트 코드 기술 로 대 리 를 생 성 합 니 다.유일 하 게 주의해 야 할 것 은 CGLib 는 final 로 설명 하 는 방법 을 대리 할 수 없습니다. CGLib 원 리 는 피 에이전트 클래스 의 하위 클래스 를 동적 으로 생 성 하 는 것 이기 때 문 입 니 다.자세 한 분석 참조:https://www.cnblogs.com/monkey0307/p/8328821.html
전제 조건:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.