SpringWebAOP

RedNine·2023년 3월 8일
0

스프링

목록 보기
15/17

AOP : 핵심클래스의 특정 메서드를 실행하기 전,후에 공통으로 사용되는 기능(Advice)이 어느위치(PointCut)에서 실행이 될것인지가 중요하다.

🍳클래스 생성

🎈MyModel.java 생성(핵심클래스)

  • Target클래스
  • 핵심기능을 처리해주는 메서드를 가진 클래스(핵심클래스=Target)

🎁SecurityClass.java 생성

  • 핵심기능을 가진 메서드 실행전에 보여줄 메서드 선언

🎁MyAspectBean.java 생성

  • 2개의 자주 사용, 반복, 공통기능을 가진 메서드를 선언된 클래스(=Aspect 클래스)

MyModel => HelloController에서 불러올 수 있도록(has a 관계)

  • beforeProcess()=>class1.security();//회원로그인을 해주는 기능
  • processMsg()//회원수정
  • afterProcess() //회원수정이후에 그 수정내용을 출력시켜주는 메서드

🍳컨트롤러

🎈HelloActionController.java

  • 핵심클래스->중요한 역할 메서드(핵심메서드) => handleRequest
  • HelloActionController 소스코드 변경 => /hello.do
  • DI를 이용해서 의존객체주입할 객체 지정(공통관심사항)

🍳환경설정

🎈hello-servlet.xml

🍳실행결과 확인

🍳작성법2

  • sp.aop2 패키지 생성해서 작성
  • 1.<bean> 태그를 이용해서 등록 ->
  • 2. <aop:config> =>
  • 3.@Aspect,@Before,@After 이용

🎈pom.xml

  • AOP 어노테이션을 사용하기 위해서 pom.xml에 추가해준다.

🎈UserVO

🎈UserService

  • 인터페이스로 생성

🎈UserServiceImpl

  • UserService 인터페이스 상속받아서 생성

🎈app.xml

  • <aop:aspectj-autoproxy /> : @Aspect,@Before,@After에 대한 프록시객체 자동설정해준다.

🎈BeforeAdvice

  • 인터페이스 상속받을 필요X
  • Before 역할(전처리) => 공통관심클래스 => Pointcut(핵심메서드 지정)+Advice(핵심메서드 전, 후, 전후)
  • @Aspect : 공통관심 클래스 어노테이션(Advice 역할)
  • @Service : 컨트롤과 DAO 중간에서 연결해주는 역할을 한다.(특정조건에 빈즈를 등록한다.)<->@Component(무조건 빈즈 등록)

🎈LogAdvice

🎈UserServiceClient

  • main()로 생성한다.

🎈실행결과 확인

0개의 댓글