Spring AOP 차단기 의 기본 실현
꿈 을 꾸 지 않 는 사람 은 없다.모든 꿈 의 순위 에서 백일몽 이 가장 슬프다.프로그램 원숭이 인 여러분 이 잠 을 한숨 잤 는 지 모 르 겠 습 니 다.그리고 잠 들 기 전 코드 에서 어떻게 해도 정 해 지지 않 은 Bug 를 꿈 에서 해결 해 준 경험 이 있 습 니까?어차피 있 었 는데
AOP 가 뭐야?
AOP 는 Aspect Oriented Programming 의 줄 임 말로 절단면 프로 그래 밍 을 위 한 사전 컴 파일 방식 과 런 타임 동적 대 리 를 통 해 프로그램 기능 의 통일 적 인 유 지 를 실현 하 는 기술 을 의미한다.AOP 는 OOP 의 연장 이 고 소프트웨어 개발 의 핫 이 슈 이자 Spring 프레임 워 크 의 중요 한 내용 이 며 함수 식 프로 그래 밍 의 파생 모델 이다.AOP 를 이용 하여 업무 논리의 각 부분 을 격 리 하여 업무 논리의 각 부분 간 의 결합 도 를 낮 추고 프로그램의 중용 성 을 높이 는 동시에 개발 의 효율 을 높 일 수 있다.
사람 이 알 아들 을 수 있 는 말 은 AOP 는 방법 집행 전후 에 똑 같은 업무 논 리 를 완성 할 수 있 고 업무 코드 를 바 꿀 필요 가 없다 는 것 으로 이해 할 수 있다.예 를 들 어:지금 필요 한 것 이 있 습 니 다.프로젝트 의 모든 방법 앞에서 한 마디 를 출력 해 야 합 니 다.실행 하 겠 습 니 다!수 요 는 매우 명확 하 다.일반적인 해결 방식 은 모든 구체 적 인 방법 맨 앞 에 한 마디
system.out.print(" !");
를 추가 하 는 것 이다.이런 생각 을 하 는 프로그래머 는 일반 프로그램 원숭이 이다.물론 이것 은 농담 이다!이런 코드,만약 한두 가지 방법 이 이런 방식 으로 아무런 문제 도 없 이 완전히 가능 하 다 면,만약 몇 십 개,몇 백 개의 이런 방법 이 있다 면?이때 우 리 는 AOP 를 사용 하여 상기 논 리 를 완성 할 수 있 습 니 다.어떠한 방법 도 바 꾸 지 않 고 침입 하지 않 는 방식 으로 이 수 요 를 완성 할 필요 가 없습니다.
AOP 가 실제 프로젝트 에서 운용 하 는 장면 은 주로 권한 관리(Authority Management),사무 관리(Transaction Management),보안 관리(Security),로그 관리(Logging),디 버 깅 관리(Debugging)등 이 있다.업무 논리 와 밀접 한 관련 이 없 는 이런 공공 방법 들 을 우 리 는 AOP 를 사용 할 수 있다.
Spring AOP 와 MVC 차단 기 는 또 무엇 입 니까?
위의 설명 을 통 해 저 는 AOP 가 사실은 디자인 모델 이 라 고 할 수 있 거나 프로 그래 밍 사상 이 라 고 할 수 있다 는 것 을 알 게 되 었 습 니 다.Spring AOP 는 Spring 프레임 워 크 가 AOP 라 는 사상 에 대해 일련의 기술 실현 과 포장 을 했 기 때문에 우 리 는 설정 만 하면 이 모델 에 도달 할 수 있 고 설정 파일 에서
<aop:config>
요 소 를 사용 할 수 있 습 니 다.그럼MVC
또 뭐야?Spring MVC 프레임 워 크 가 AOP 를 구현 하 는 방식 으로 설정 파일 에<mvc:interceptors>
요 소 를 사용 하여 설정 한 것 으로 이해 할 수 있다.이 두 가지 방식 은 바로 AOP 의 프로 그래 밍 사상 을 실현 한 것 이다.우 리 는 일정한 설정 만 하면 된다.현재 많은 사람들 이 Spring AOP 와 MVC 차단 기 를 같은 방식 으로 보고 있 는데 모두 차단기 나 AOP 라 고 부른다.코드 를 훑 어보 도록 하 겠 습 니 다.
1.새로 만 든
TestInterceptor
종 류 는HandlerInterceptorAdapter
에 계승 된다.구체 적 인 코드:
package cn.mayongfa.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class TestInterceptor extends HandlerInterceptorAdapter {
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//
System.out.println(" !");
super.afterCompletion(request, response, handler, ex);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//
System.out.println(" !");
super.postHandle(request, response, handler, modelAndView);
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//
System.out.println(" !");
return super.preHandle(request, response, handler);
}
}
2.
/WebContent/WEB-INF/springMVC-servlet.xml
의<mvc:interceptors>
요 소 를 설정 하면 요청 을 차단 할 수 있 습 니 다.
<mvc:interceptors>
<!-- mvc:interceptors Interceptor -->
<mvc:interceptor>
<!-- mvc:interceptor -->
<mvc:mapping path="/api/**"/>
<bean class="cn.mayongfa.interceptor.TestInterceptor">
</bean>
</mvc:interceptor>
</mvc:interceptors>
물론,당신 은 당신 의 요구 에 따라 차단 할 수 있 습 니 다.제 가 여기 서 차단 한 것 은 api 경로 아래 의 모든 요청 입 니 다.3.테스트 해 보기
제 프로젝트 에
/api/user/getlist
요청 이 있 습 니 다.브 라 우 저 에 입력 해 보 세 요.요청 데이터 성공,콘 솔 출력 보기:
우리 가
TestInterceptor
클래스 에서 출력 한 것 을 보 았 습 니 다.이것 이 바로 Spring AOP 차단기 의 기본 적 인 실현 입 니 다.여기까지,당신 은 어떻게 AOP 를 사용 하여 업무 논리 와 무관 하고 코드 전후 에 실행 해 야 하 는 일반적인 방법 을 진행 하 는 지 알 게 되 었 을 것 입 니 다.이것 이 바로 제 가 AOP 의 역할 을 이해 하 는 것 입 니 다.다운로드 주소:SpringDemo_jb51.rar
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.