今日份的学习笔记:2021.08.13 SpringMVC学习笔记(一) SpringMVC入门

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分层

SpringMVC分层模式概述

三层架构:持久层、业务层、表现层(Web层)

持久层

数据的持久化操作
持久层 ≈ 数据层 ≈ 数据库
可以理解成将数据保存在数据库或者硬盘等可以长期保存的设备里,不像放在内存中那样断电就消失了,也就是把数据存在持久化设备上
mybatis就是持久层

业务层

业务逻辑的处理
负责表现层和持久层的数据传递和逻辑处理
业务层 ≈ 控制器

表示层

对数据的展示和用户的输入
表示层 ≈ 视图层

流程

01 用户看到View
02 View —( 用户操作:点击按钮等 )— > Controller
03 Controller —— > Model : 调用Model中的方法
04 Model —— > Controller : 返回数据
05 Controller—— > View : 传数据到View,更新View
06 用户看到更新后的View

Springboot常见注解(二)

@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