黑马程序-实战篇

1、Spring Validation

Spring提供的一个参数校验框架,使用预定义的注解完成参数校验

步骤:

1、引入Spring Validation 起步依赖

<!--        validation依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

2、在参数前面添加@Pattern注解

3、在Controller类撒花姑娘添加@Validated注解

2、登录认证(防止用网址直接跳过登录界面)

jwt令牌

全程:JSON Web Token

组成:第一部分:Header(头) 记录令牌类型,签名算法等

​ 第二部分:Payload(有效载荷) 携带一些自定义信息、默认信息等,但不能携带私密数据,如密码

​ 第三部分: Signature(签名),防止Token被篡改,确保安全性。

注意事项:

  • JWT校验时使用的签名秘钥,必须和生成JWT令牌时使用的秘钥是配套的
  • 如果JWT令牌解析校验时报错,则说明JWT令牌被篡改或失效了。

3、第三方服务-通用思路

3.1、准备工作

注册登录,

充值,

开通对象存储服务(OSS),

创建bucket,

获取AccessKey(秘钥)

参照官方SDK编写入门程序,案例集成OSS

3.2、参照官方SDK编写入门程序

SDK:软件开发工具包,包括辅助软件开发的依赖(jar包)、代码示例等,都可以叫做SDK

3.3、集成使用

4、Redis

4.1、SpringBoot集成redis

4.2、令牌主动失效机制

  • 登陆成功后,给浏览器响应令牌的同时,把该令牌存储到redis中
  • LoginInterceptor拦截器中,需要验证浏览器携带的令牌,并同时需要获取到redis中存储的与之相同的令牌

5、SpringBoot项目部署

开发好的项目,在自己电脑上关掉后,仍然可以再别人的电脑上运行

打包生成jar包,导入打包插件:

适用于springboot2

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

适用于springboot3

<plugin>
 				<groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>3.1.3</version>

</plugin>

先停止IDEA中的项目运行,不然他会占端口

6、多环境配置(开发、测试、生产)

7、前端项目js导入导出

HTML:负责网页的结构(标签:form表单 / table表格 / a /div/span)

CSS:负责网页的表现(样式:color/font/background/width/height)

JavaScript:负责网页的行为(交互效果)

JS提供的导入导出机制,可以实现按需导入

问题

SpringBoot2和3的区别

SpringBoot2,在mapper层需要些@Param

,但是springboot3不需要加@param

全局异常处理器

在全局异常处理器中处理参数校验失败的异常

@NotNull和@NotEmpty

@NotNull:你不能不传

@NotEmpty :你必须传,如果是字符串,不能为空

分组校验

参数校验

自定义校验

已有的注解不能满足所有的校验需求,特殊的情况需要自定义校验(自定义校验注解)

  1. 自定义注解State
  2. 自定义校验数据的类StateValidation实现ConstraintValidator接口
  3. 在需要校验的地方使用自定义注解
posted @   Will凸^-^凸  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示