0%

springmvc处理模型数据

很多情况下页面上需要很多数据,单单返回页面是不行的,那么springmvc如何将数据返回到该页面呢

springmvc提供了四种方式来输出模型数据

  • ModelAndView: 处理返回值为ModelAndView时,可以将该对象中添加数据模型
  • Map及Model:入参为Model、ModelMap或Map时,处理方法返回时,Map中的数据会自动添加到模型中
  • @SessionAttributes: 将模型中的某个属性暂存到HttpSession中,以便多个请求之间共享数据
  • @ModelAttribute: 方法入参标注该注解后,入参的对象就会放到数据模型中

使用BindingResult和Errors来处理绑定错误

阅读全文 »

spring事务

事务介绍

一个事务要么同时成功,要么同时失败

特性

  • Atomic原子性 事务是由一个或多个活动组成的一个工作单元。原子性确保事务中的所有操作全部发生或全部不发生

  • Consistent一致性 一旦事务完成,系统必须确保它所建模的业务处于一致的状态

  • Isolated隔离性 事务允许多个用户对数据进行操作,每个用户的操作不会与其他用户纠缠在一起,多个事务之间数据要相互隔离

  • Durable持久性 一旦事务完成,事务的结果应该持久化

阅读全文 »

Spring AOP

AOP称为切面编程(Aspect Oriented Programming),是面向对象的一种补充,通过预编译方式与运行期动态代理实现程序功能的一种技术,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等。Spring AOP中使用的是动态代理。

为什么要使用AOP

如果你有一个系统包含很多包和类并没有使用AOP,比如日志追踪,事务和异常处理,我们不得不在每一个类和每一个方法实现它们。

这将导致很多问题:

  • 代码混乱 每个类和方法包含日志追踪,事务和异常处理甚至业务逻辑
  • 代码分散 切面比如事务是分散在代码中,没有在系统的一个特别部分实现
  • 代码冗余 很多相同的代码需要写几遍甚至十几遍

而AOP做的事情就是将相同逻辑的重复代码横向抽取出来,使用动态代理技术将这些重复代码织入到目标对象方法中,实现和原来一样的功能

阅读全文 »

删除数据

MySQL删除数据的方式有两种,一种为delete,一种为truncate

delete删除数据

1
delete from 表名 where 条件

truncate删除数据

1
truncate table 表名;
阅读全文 »

数据绑定

数据绑定流程

  • springmvc框架将ServletRequest对象及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象
  • DataBinder调用装配在springmvc上下文中的ConversionService组件进行数据类型转换、数据格式化工作。将Servlet中的请求信息填充到入参对象中
  • 调用Vaildator组件对已经绑定了请求消息的入参对象进行数据合法性检验,并最终生成数据绑定结果BindingData对象
  • springmvc抽取BindingResult中的入参对象和校验错误对象,将他们赋给处理方法的响应入参
阅读全文 »