Get请求参数是放在HttpServletRequest 的parameterMap中的,可以通过如下方式获取get请求参数
1 | request.getParameterMap() |
Spring MVC HttpServletRequest 获取 RequestBody
Get请求参数是放在HttpServletRequest 的parameterMap中的,可以通过如下方式获取get请求参数
1 | request.getParameterMap() |
在Spring范围内,可使用@Autowired
直接注入
1 |
|
1 | @startuml |
“JDK 中用到了哪些设计模式? Spring 中用到了哪些设计模式? ”这两个问题,在面试中比较常见。
我在网上搜索了一下关于 Spring 中设计模式的讲解几乎都是千篇一律,而且大部分都年代久远。所以,花了几天时间自己总结了一下。
由于我的个人能力有限,文中如有任何错误各位都可以指出。另外,文章篇幅有限,对于设计模式以及一些源码的解读我只是一笔带过,这篇文章的主要目的是回顾一下 Spring 中的设计模式。
IoC(Inversion of Control,控制反转) 是 Spring 中一个非常非常重要的概念,它不是什么技术,而是一种解耦的设计思想。IoC 的主要目的是借助于“第三方”(Spring 中的 IoC 容器) 实现具有依赖关系的对象之间的解耦(IOC 容器管理对象,你只管使用即可),从而降低代码之间的耦合度。
Spring 使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 Bean。
1 | import org.springframework.context.ApplicationContext; |
编程式事务指的是通过编码方式实现事务,类似 JDBC 编程实现事务管理,比如 TransactionalTemplate 或者 TransactionManager。
1 |
|
MVC 即 Model-View-Controller,是一种复合模式。
模型利用 “观察者模式” 让控制器和视图随最新的状态改变而更新;
AOP 即面向切面编程(Aspect Oriented Programing),实际上是将一些通用的功能横向抽取出来:
Spring AOP 将应用分为核心关注点和横切关注点。业务处理流程为核心关注点,被业务所依赖的公共部分为横切关注点。横切关注点的特点是其行为经常发生在核心关注点多出,而多处操作基本相似,比如权限认证、日志、事务等。AOP 的核心思想是将核心关注点和横切关注点分离开来,以降低模块耦合度。
Spring AOP 的应用场景主要有: