SpringMVC概述
SpringMVC是一个基于MVC设计模式的Web层框架
M是指Model(模型),V是指View(视图),C是指Controller(控制器),分别对应持久层、表现层、业务层
SpringMVC设计模式
MVC,全名是(Model View Controller)的缩写,是一种软件设计模式。具体含义:
1、Model:模型,用来处理数据,一般是一个实体类,例如User类;
2、View:视图,用来显示界面,可以是JSP或Html;
3、Controller:控制器,用来决定哪个界面来展示模型;(其实是业务处理器)
SpringMVC在项目中的作用
JavaEE开发规范规定,一个Java web项目应该要分为三层:
1、WEB层:页面数据显示、页面跳转调度
2、业务层:业务处理和功能逻辑、事务控制
3、持久层:数据存取和封装、和数据库打交道
SpringMVC分层模式概述
三层架构:持久层、业务层、表现层(Web层)
持久层
数据的持久化操作
持久层 ≈ 数据层 ≈ 数据库
可以理解成将数据保存在数据库或者硬盘等可以长期保存的设备里,不像放在内存中那样断电就消失了,也就是把数据存在持久化设备上
mybatis就是持久层
业务层
业务逻辑的处理
负责表现层和持久层的数据传递和逻辑处理
业务层 ≈ 控制器
表示层
对数据的展示和用户的输入
表示层 ≈ 视图层
流程
01 用户看到View
02 View —( 用户操作:点击按钮等 )— > Controller
03 Controller —— > Model : 调用Model中的方法
04 Model —— > Controller : 返回数据
05 Controller—— > View : 传数据到View,更新View
06 用户看到更新后的View
@RequestParam
@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
@ModelAttribute
@ModelAttribute
用于将方法的参数或方法的返回值绑定到指定的模型属性上,并返回给Web视图
@RequiresPermissions
@RequiresPermissions("")
shiro权限相关注解
@Validated
@Validated
@Validated是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以很轻松的完成对数据的约束
@Service
@Service
用于标记业务层组件
@Transactional
@Transactional
用于事务管理
@Table
@Table
声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe)
@Column
@Column
用来标识实体类中属性与数据表中字段的对应关系
@NotBlank
@NotBlank
只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
@Size、@Length、@Max、@Min
@Size ——> (Array,Collection,Map,String)
Length(min=, max=)
@Max
@Min
@Size验证对象长度是否在给定的范围之内
@Length验证字符串长度是否在给定的范围之内
@Min 验证 Number 和 String 对象是否大等于指定的值
@Max 验证 Number 和 String 对象是否小等于指定的值
max和min是对所填的“数字”是否大于或小于指定值,这个“数字”可以是number或者string类型。长度限制用length。
@JsonFormat
@JsonFormat
用于数据格式化
@MyBatisDao
@MyBatisDao
Java知识补充(一)
this 和 super
this
什么是this?
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针
this的用法
01 普通的直接引用
02 形参与成员名字重名,用this来区分
03 引用构造函数
super
什么是super?
super可以理解为是指向自己超类(父类)对象的一个指针,而这个超类指的是离自己最近的一个父类
super的用法
01 普通的直接引用
super相当于是指向当前对象的父类,通过super.XXX来引用父类的成员
02 子类中的成员变量或方法与父类中的成员变量或方法同名
03 引用构造函数
super(参数):调用父类中的某一个构造函数
// first sentence
this(参数):调用本类中另一种形式的构造函数
// first sentence