0
我有以下實現:彈簧引導啓動的AOP不會指點我的方面
public interface BusinessResource {
@RequiresAuthorization
public ResponseEnvelope getResource(ParamObj param);
}
和
@Component
public class BusinessResourceImpl implements BusinessResource {
@Autowired
public Response getResource(ParamObj param) {
return Response.ok().build();
}
}
和
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class AuthorizerAspect {
protected static final Logger LOGGER =
LoggerFactory.getLogger(AuthorizerAspect.class);
@Autowired
public AuthorizerAspect() {
LOGGER.info("Break point works here..." +
"so spring is creating the aspect as a component...");
}
@Around(value="@annotation(annotation)")
public Object intercept(ProceedingJoinPoint jp,
RequiresAuthorization annotation) throws Throwable {
LOGGER.info("BEGIN");
jp.proceed();
LOGGER.info("END");
}
}
的maven的依賴關係可以用spring-boot-starter-aop依賴關係年。那麼,什麼情況是,如果@RequiresAuthorization是在BusinessResource接口聲明的方法使用AuthorizerAspect不會對周圍的getResource方法攔截,但如果我改變現在執行標註同樣的方法在BusinessResourceImpl類,方面將發生。
注意:通過接口級別的註釋,代理甚至不會創建,而註釋放置在實現級別中將爲該資源創建代理。
問題是:有沒有一種方法可以建議對象的註釋只出現在界面上?
請確保在提交答案前沒有問題。 invoke方法返回的地方在哪裏?以及Advice類的包是什麼? –