728x90
Mingty.java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Mingty {
public String name() default "";
public String value() default "";
}
위와 같이 기본 어노테이션 인터페이스를 생성한다.
그 후, Controller에
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import mingty.util.Mingty;
@Controller
@RequestMapping("/ex")
public class Excontroller {
@Jungle(name="abc", value="/")
@RequestMapping
public String abc(HttpSession session){
session.setAttribute("hi", "good");
System.out.println("이거다"+session.getAttribute("hey"));
return "error/error";
}
}
위와 같이 메서드 위에 Jungle이라는 어노테이션이 추가된 것을 확인할 수 있다.
아래와 같이 파라미터값을 받거나 세션을 생성 및 요청받을 수 있는 것을 확인할 수 있다.
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class MingtyAOP {
@Autowired HttpServletRequest request;
@Autowired HttpServletResponse response;
@Autowired HttpSession session;
@Around("@annotation(mingty.util.Mingty) && @ annotation(mingty)")
public Object customAnnoTest(ProceedingJoinPoint joinPoint, Mingty mingty) throws Throwable {
String hi = request.getParameter("hi");
if(mingty.name().equals("abc")){
System.out.println("zzzzz");
System.out.println(">>>>>zz"+session.getAttribute("hi"));
session.setAttribute("hey", "aaa");
}
System.out.println(">>>>>>"+hi);
System.out.println("name : " + mingty.name());
System.out.println("code : " + mingty.value() );
Object returnPoint = joinPoint.proceed();
return returnPoint;
}
}
위와 같이 사용할 수 있다.
728x90
'FrameWork > Spring' 카테고리의 다른 글
[spring] taglib 활용 (0) | 2018.04.24 |
---|---|
[SPRING] HTML5 SOCKET 통신 [sample] (0) | 2017.12.11 |
[SPRING] 스프링과 마이바티스 에서 다중 데이타소스 사용하기 (0) | 2017.10.19 |
[Spring, JAVA] 파일 복사(FileChannel 이용) (0) | 2017.09.21 |
[SPRING] FTP서버의 이미지 프리뷰 (0) | 2017.08.28 |
댓글