2019-08-24 注解和AOP在项目中的使用

需求:在请求从controller出来之后,判断请求头是否包含特定字符,如果包含,就往modelMap中写入标志,这样在返回视图的时候,根据标志决定返回整个页面还是碎片页面,通过这样来实现单页面应用(SAP)。

实现步骤

  1. 定义注解(注解本身并不做什么事,只是触发AOP的媒介):
@Target(ElementType.METHOD)   //用在方法上
@Retention(RetentionPolicy.RUNTIME)  //保留至运行时
@Documented //生成文档时也记录进去
public @interface Page {

}
  1. 定义aspect(包含切点)
public class PageAspect {

    @After("@annotation(Page)")
    public void afterHttp(JoinPoint joinPoint) {
       // 获取 request 参数
        RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = ((ServletRequestAttributes) attributes).getRequest();
        String httpType = request.getHeader("http-type");
        boolean f = !"ajax".equals(httpType);
        modelMap.put("loadAll", f);
    }
}

简单两步,就可以在使用@Page注解的地方进行请求头判断,减少代码量。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在上一篇使用自定义注解实现MVP中Model和View的注入中,使用了自定义的方式进行依赖注入这一篇我们将继续对注...
    奇葩AnJoiner阅读 4,381评论 0 2
  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 4,262评论 0 0
  • 16. Web MVC 框架 16.1 Spring Web MVC 框架介绍 Spring Web 模型-视图-...
    此鱼不得水阅读 4,726评论 0 4
  • 基本知识 其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹...
    永顺阅读 12,700评论 5 114
  • 初一上午十点多,在家闲的无聊,就去外面转转,看看初一的街头,和平时有什么区别吧。坐标山东淄博张店。 出门先去了菜市...
    水沉檀香阅读 3,462评论 0 0

友情链接更多精彩内容