JSON数据

默认情况下,当开发者新创建一个SpringBoot项目时,会添加Web依赖,在这个依赖中会默认加入jackson-databind作为Json处理器。

@RestController

组合注解,等于@Controller和ResponseBody

(但是,两个注解是返回页面,一个是返回Json)

静态资源

SpringBoot中对于SpringMVC的自动化配置都在WebMvcAutoConfiguration类中,开发者使用IntelliJ IDEA创建SpringBoot项目,就会默认创建static目录,静态资源一般放在这个目录下即可。

@ControllerAdvice

是@Controller的加强版,主要用来处理全局数据。

例子:文件上传大小超过限制的异常处理

在系统中定义CustomExceptionHandler类,然后添加@ControllerAdvice注解即可。当系统启动时,该类就会被扫描到Spring容器中。

然后定义uploadException方法,在该方法上面添加@ExceptionHandler注解,其中定义的MaxUploadSizeExceededException.class表明该方法用来处理MaxUploadSizeExceededException类型的异常。如果想让该方法处理所有类型的异常,只需将MaxUploadSizeExceedeException改为Exception。

方法的参数可以有异常实例、HttpServletResponse以及HttpServletRequest、Model等,返回值可以是一段Json、一个ModelAndView、一个逻辑视图等。

CORS支持

CORS(Cross-Origin Resource Sharing) 是由W3C制定的一种跨域资源共享技术标准,其目的就是为了解决前端的跨域请求。在JavaEE中,最常见的前端跨域请求解决方案是JSONP,但是JSONP只支持GET请求,这是一个很大的缺陷,而CORS则支持多种HTTP请求方法。

跨域配置:

注册拦截器

拦截器中的方法将按照preHandle->Controller->postHandle->afterCompletion的顺序执行,只有preHandle方法返回true时后面的方法才会执行,当拦截器链中存在多个拦截器时,postHandler在所有拦截器返回成功时才会调用,即若拦截器链中的第一个拦截器的preHandle方法返回false,则后面的方法都不会执行。

面向切面编程(AOP)

在系统运行时动态添加代码的方式成为面向切面编程。

常见概念:

Joinpoint(连接点):类里面可以被增强的方法即为连接点。例如,想修改哪个方法的功能,那么该方法就是一个连接点。

Pointcut(切入点):对Joinpoint进行拦截的定义即为切入点。例如,拦截所有以insert开始的方法,这个定义即为切入点。

Advice(通知):拦截到Joinpoint之后所要做的事情就是通知。例如,打印日志监控,通知分为前置通知、后置通知、异常通知、最终通知和环绕通知。

Aspect(切面):Pointcut和Advice结合。

Target(目标对象):要增强的类称为Target

最新文章

  1. C++ Scripting
  2. ACM - 动态规划专题 题目整理
  3. C++ Primer : 第十章 : 泛型算法 之 只读、写和排序算法
  4. 【Shell脚本学习12】Shell字符串
  5. 手把手教你学习DSP_硬件设计
  6. DevExpress LookUpEdit 下拉框基本操作
  7. js模块化加载器实现
  8. 如何修改dmesg log buffer size
  9. 由源代码编译SpriteBuilder最新版本1.5.0搭配最新的Cocos2D 3.4.9
  10. 容器—stack
  11. poj1741(点分模板)
  12. muduo网络库学习笔记(三)TimerQueue定时器队列
  13. 用bochs调试自己写的系统引导代码
  14. 定期删除elasticsearch 的index 索引
  15. STL标准库-迭代器适配器
  16. c:forEach varStatus属性
  17. 轻量级企业私有云 JimV 分享
  18. 【SVN/Visual Studio】清除/更换AnkhSVN的用户登录信息
  19. JS加密库
  20. 软件项目技术点(9)——如何将gif动态图拆分绘制

热门文章

  1. Java Runtime.exec()用法
  2. 【hadoop】看懂WordCount例子
  3. 交易开拓者旗舰版(TB旗舰版)软件升级中如何迁移用户数据
  4. 腿部——哑铃&杠铃
  5. http状态码记录
  6. 2013.4.30 - KDD第十二天
  7. Vuex状态管理总结
  8. linux系统编程之信号(二)
  9. 《你们都是魔鬼吗》实验十二 团队作业八:Alpha冲刺
  10. Title:eNSP 映射到外网