728x90
반응형
CartAspect.java
package aop;
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.stereotype.Component;
import exception.CartException;
import exception.LoginException;
import logic.Cart;
import logic.User;
@Component
@Aspect
public class CartAspect {
@Around("execution(* controller.Cart*.check*(..)) && args(..,session)")
public Object cartCheck(ProceedingJoinPoint joinPoint, HttpSession session)
throws Throwable {
User loginUser = (User)session.getAttribute("loginUser");
if(loginUser == null) {
throw new LoginException("회원만 주문 가능합니다. 로그인 하세요","../user/login");
}
Cart cart = (Cart)session.getAttribute("CART");
if(cart == null || cart.getItemSetList().size() == 0) {
throw new CartException("장바구니에 주문 상품이 없습니다","../item/list");
}
return joinPoint.proceed();
}
}
CartException.java
package exception;
public class CartException extends RuntimeException {
private String url;
public CartException(String msg, String url) {
super(msg);
this.url = url;
}
public String getUrl() {
return url;
}
}
728x90
반응형