2023/10/8总结

安装Sass

pnpm i sass -D

2023/10/8总结_第1张图片

电商 网站 的首页 通常会比较长 用户 不一定能访问到 页面靠下面的图片  ,这类图片可以通过 懒加载 优化手段可以做到 只有 进入视口区域才发送图片请求  

指令写法:

路由缓存问题

使用带有参数的路由需要注意的是  相同的组件实例 将被 重复 使用 ,因为俩个路由都渲染俩个组件 复用 显得 更加高效  但是这也意味着 组件的 生命周期 钩子不会被调用

方案一 

以 当前路由 完整路径 为 key 的值 给 router-view 组件绑定

key 最常见 的 用例 是与 v-for 结合  但是也可以用于 替换 一个元素 / 组件 而不是复用 它  当你 想这样做时 它很可能会很有用 

在适当 的 时候 触发 组件的生命周期钩子

触发过渡

方案二

使用 beforeRouteUpdate 导航钩子

beforeRouteUpdate 钩子函数可以在每次路由更新 之前 执行  在回调 中执行 需要数据 更新的业务逻辑 即可

或者使用 beforeRouterUpdate 导航 守卫 它也可以 取消导航

定制路由行

在不同 路由 切换 的时候  可以自动 滚动 到 页面的顶部  而不是 停留在 原先的位置

vue-router  支持 scrollBehavior 配置项  可以指定 路由 切换 时 的滚动位置

scrollBehavior(){

        return {top:0}

}

spring

Spring Framework 是Spring 生态圈中最基础的项目,是其他项目的根基

  • IoC  控制反转  对象的创建 控制权 由程序 转移到外部 ,这种思想称为 控制反转  IoC 主要 为了 解耦合
  • 耦合是指两个或两个以上对象存在依赖,当一方修改之后会影响另一方,那么就说这些对象间存在耦合。

Spring 技术 对 IoC 思想进行了 实现

Spring 提供了一个容器  称为 IoC 容器 用来充当 IoC 思想 中的 外部

DI 依赖注入

在容器中建立 bean 和 bean 之间 的 依赖 关系 的整个过程  称为 依赖注入

bean基础配置

2023/10/8总结_第2张图片

bean 的 别名

name属性 可以指定多个别名  用空格隔开  id 有的功能 name 属性带的也能做

bean 的 作用域范围

scope  

在bean 的作用范围 可选范围如下:

  • singleton  单例 (默认)指创建的对象还是原来那一个
  • prototype  非单例  指 创建 新的对象

bean实例化

依赖注入方式

setter 注入 

  • 简单类型
  • 引用类型

案列:

2023/10/8总结_第3张图片

Beans.xml 文件

2023/10/8总结_第4张图片

执行:

2023/10/8总结_第5张图片

在bean中 定义引用类型 属性 并 提供 可 访问的set方法

配置中 使用 property 标签 ref 属性 注入引用类型对象

构造器注入

  • 简单类型
  • 引用类型

ApplicationContext 

称为 Spring 容器 内部封装了 BeanFactory  比 BeanFactory 功能 更 强大 使用 ApplicationContenxt 进行开发时  xml 配置文件 的 名称 习惯写成 applicationContext.xml

2023/10/8总结_第6张图片

Bean 的延迟加载

当 lazy-init 设置为 true 时 为延迟加载  也就是当 Spring 容器 创建的时候 不会立即创建Bean 实列 等待 用到时 再创建Bean 实例 并存储到 单例池 中去 后续在使用 该 Bean 直接从 单例池 获取即可  本质上 该 Bean 还是单例的

Bean 的 初始化 和 销毁方法配置

Bean 在 被实例化 后 可以执行指定的初始化方法完成 一些初始化 的 操作 Bean 在销毁 之前 也可以执行 指定 的 销毁方法来完成一些操作 

  • 初始化方法名称   init-method
  •  销毁方法名称   destroy-method

SpringBean 的配置详解

Bean 的 实例化 配置

构造方法实例化 Bean 又分为 无参构造方法实例化 和 有参构造方法实例化

SpringBoot 

是由 Pivotal 团队 提供的 全新框架  其设计目的是用来简化 Spring 应用 的初始搭建 以及 开发过程

2023/10/8总结_第7张图片

starter

Springboot 中常见的项目名称  定义 了 当前项目使用的所有依赖坐标  以达到减少 依赖配置 的目的

parent

所有 SpringBoot 项目中要继承的项目  定义了 若干个 坐标版本号 (依赖管理,而非依赖) 以达到 减少依赖冲突 的 目的 

spring-boot-starter-parent  各版本间存在诸多坐标版本不同

REST开发

REST简介

表现形式状态转换

优点

  • 隐藏资源的访问行为  无法通过地址得知对资源是何种操作
  • 书写简化

按照REST风格 访问资源时 使用 行为动作 区分对资源进行了何种操作

常见的:get  post put delete

2023/10/8总结_第8张图片

2023/10/8总结_第9张图片

2023/10/8总结_第10张图片

postman 测试成功:

2023/10/8总结_第11张图片

@RequestBody 

用于接收 json 数据

@RequestParam

用于接收 url 地址传参 或者 表单 传参

@PathVariable

用于接收 路径 参数 使用 {参数名称} 描述路径参数

后期开发中 发送请求参数超过 1 个时  以 json 格式为主  @RequestBody 应用较广

如果发送非 json 格式数据 选用 @RequestParam 接收请求参数

采用 RESTful 进行开发  当参数数量较少时  例如 1 个 可以采用 @PathVariable 接收请求路径变量  通常用于传递 id 值

2023/10/8总结_第12张图片

基础配置

  • 修改服务器端口

serve.port=80

  • 关闭运行日志图标

spring.main.banner-mode=off

  • 设置日志相关

logging.level.root=debug

Springboot 提供了3种 配置文件的格式

  • properties  传统格式/默认格式
  • yml 主流格式
  • yaml 

整合第三方技术

  • Mybatis
  1. 勾选Mybatis 技术 也就是导入 Mybatis 对应的 starter
  2. 数据库连接 相关信息转换成配置
  3. 数据库SQL映射需要添加@Mapper被容器识别到

在使用 Springbooot 整合 MybatisPlus 时 我遇到了一个问题

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.dao.UserDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1824)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1383)

后面找了查找了很多资料 发现是 MybatisPlus 3 和 SpringBoot 3 以上版本并没有整合 的 很好

降低了SpringBoot的版本为 2.多才运行成功

Lombok 

一个java类库  提供了一组注解  简化 POJO 实体类 开发

依赖:


    org.projectlombok
    lombok

常用注解:

@Data

写了这个注解之后  那么 setter 和 getter 方法都不用写了,包括 toStirng 和 hashCode

2023/10/8总结_第13张图片

控制台就会有对应内容

2023/10/8总结_第14张图片 mybatisPlus 会有一个分页的功能

它的语句是 selectPage

2023/10/8总结_第15张图片

但是写完这些并没有很大的用处

需要写一个MybatisPlus的拦截器  而且是分页拦截器

2023/10/8总结_第16张图片

这样就能运行成功了

2023/10/8总结_第17张图片

在 MybatisPlus 里面 通过 selectPage 后 的 返回的page 变量还有许多用处

2023/10/8总结_第18张图片

2023/10/8总结_第19张图片

前后端 协议 联调

前后端分离结构设计中页面归属 前端 服务器

单体工程中页面 放置 在 resources 目录下 的 static 目录中 (建议执行clean)

刷题记录:

2023/10/8总结_第20张图片

你可能感兴趣的:(服务器,运维)