跳转二--->
/****springboot */
1. Parent标签的定义.parent标签,是Spring官网负责维护, 在其中定义了几乎所有的框架与SpringBoot兼容的版本信息.
作用: 集中定义版本号
2. build标签作用: springboot打包时必须添加的 没有该插件 导致jar包不能运行
3. properties配置文件说明
01 key-value结构 key=value 不要写多余的空格
02 properties 本身就是字符串类型 无需加''号
byte short boolean char int float long double
idea 设定utf-8 是idea读取的字符集编码
程序通过io进行读取,默认ISO-8859-1
所有中文必定乱码 需要设定字符集
4. yml文件说明
数据结构 key:(空格)value
yml文件有层级结构 注意父子级的语法的缩进
yml文件程序默认读取采用utf-8编码
5. spring boot
热部署: 每次修改代码后 需要手动重启服务器 在开发阶段是否有一种高效的的机制,
每次修改代码后程序自动重启 组合键: ctrl + shift + alt + / -->Registry
勾选compiler.automake.allow.when.app.running
6. springboot 的核心
开箱即用 只需要导入特定的jar包文件 则可以直接使用其中的功能
根本原因 springboot是对框架的简化 内部进行了扩展 不需程序员操作
7. lombok作用
简化用户创建实体对象pojo的过程 插件自动完成实体对象中常用方法的构建
get/set/toString构造
思考: lombok使用需要安装插件才能使用, 换到linux里是否需要提前安装插件???
--> 不需要 lombok在编译器有效 编译后自动添加get/set等方法
8. springboot加载器顺序
8.1 main -> @SpringBootApplication -> 动态获取当前启动类的包路径
-> 通过包扫描将@Controller@Service,Dao交给容器管理
-> spring容器类维护一个map集合 类名小写(key), 实例化对象value(类名)
-> 对象创建实例化 查看@Autowired 整个Spring容器内部都没有该对象
报错 注入失败 map中维护了注入的对象 则注入成功 则最终对象实例化正常
-> spring容器启动正常 等待用户调用
------------> 9. mybatis <----------------
编辑mapper的配置文件
<mapper namespace="接口全路径">
<select id="必须与接口方法名相同" resultType="类名(全路径/别名yml)">
sql -----> 注意绝对不能写分号
</select>
<resultMap id="userRM" type="类名">
字段 id column="转化前" property="转化后"
<mapper>
/*
mybatis:
#设置别名包
type-aliases-package: com.jt.pojo
#加载映射文件
mapper-locations: classpath:/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
*/
==============> 接口注解说明
注意: SQL语句通过注解表示在接口方法中(简单操作)
@Select("select * from demo_user where id= #{id}")
-----------> mybatis-plus <------------
背景: 简化开发(CRUD)
以对象的方式操作数据库
01. 继承公共接口baseMapper<pojo对象类型>
02. 添加新的依赖 -->依赖大全 6项
03. 注解(pojo)-->注解大全中查看12项
04. 将原来的yml文件 mybatis改为 mybatis-plus
mp中包含的方法
selectById selectList updateById update
//---=====-> 条件构造器querywapper<> 逻辑运算符
eq = , gt > ,it < , >= ge , <= le , != ne
in关键字 包含(...)
order by 排序 asc升序(默认) desc降序
//---=====->动态sql queryWrapper.gt(boolean,"字段",字段值)
true表示存在 false直接删除这个字符(不查 否则报错)
-------------- 结束 ---------------------------
Json结构
Json--> JavaScript Object Notation
01. 轻量级数据交换格式
02. http请求协议 (由来)
-->字符串
-->字节信息A-B获取数据http请求
03 基本格式
--> 对象格式
--> 数组格式
--> 嵌套格式
=====> ajax 特点 <=====
1. 局部刷新 异步调用
ajax是实现前后端交互, 最为常见的一种方式
2. 历史
原生的js包含ajax 但是操作比较复杂 20行左右
jq 是js的高级函数类库
jq 提供了一种高级的ajax请求方式
同步与异步的区别
同步: 用户发起请求 要求第一时间服务器作出响应 用户不能进行其他操作 只能等待
异步: 用户发起请求时 要求服务器作出响应 用户可以进行其他操作 通过回调函数
进行通知用户 局部刷新多次
ajax返回值
说明后台返回的是json串
=------------- js 变量基本用法 ------------=
var 变量: 全局范围声明一个变量 该变量没有作用域(变量重名既覆盖)
let关键字 作用域范围存在(推荐使用)
const: 标识常量, 该数据不变
RestFul结构
简介: 简化get请求方式 变量省略 直接写内容
1.restFul请求类型 http://localhost:8090/user/大乔/18 请求类型: XXX
注意事项:
1. 简化get请求
2. 采用无状态的请求名称
接受方式 @GetMapping(/../${...})
普通参数 使用 @PathVariable
对象请求 直接对象接受 不写注解 详细见注解栏目 14
ajax(axios)-->post前端发送
let 对象 ={name: ***,...}
axios.post("http://localhost:8090/saveUser", 对象)
注意 后端接收需要使用一个注解 @RequestBody 将json串转化成对象User
@RequestBody
@ResponseBody 介绍在下面
解构赋值操作
直接将数据获取
ES7 提供了 await async 简化axios操作
用法说明: await 标识异步调用 解构操作
async 用在函数中 支持解构
!!!必须同时使用
v-model 双向数据绑定
vue使用语法: (访问观看)
harrylyj.blog.csdn.net/article/det…
----------- 前端脚手架vue---------
使用前端框架 node.js提供的脚手架 组件定义
vue Router存在的意义
---> 传统页面跳转
后端服务器进行页面跳转, 所有的请求都会经过后端,导致后端服务器压力过大
这种 用户通过后端服务器才能获取页面相关信息的方式 称为
后端路由/服务器路由.
弊端: 这种方式是一种集中式的管理,性能瓶颈在服务端
---> 现在页面跳转
前端路由/客服端路由 将所有的路由的配置生成JS,保存到浏览器中.
当用户发起某个请求时,自己映射对应的请求页面信息(组件),
之后直接访问静态资源.这样的方式速度更快.
事务控制()
1. 原子性 一个方法中的业务要么都成功 要么都失败
2. @Transactional 这个注解用法
1.如果控制的方法出现了运行时异常则事务自动的回滚.
2.如果控制的方法 检查异常(编译异常), 事务不会自动回滚,Spring任务程序既然已经提示需要异常的处理.则默认由程序员自己控制.Spring不负责管理.
2.注解属性
rollbackFor: 遇到什么类型, 异常回滚事务,
noRollbackFor: 遇到什么类型的异常 事务不回滚.
关于属性说明: 一般工作中都采用默认策略,特殊条件下才使用该配置.
@Transactional(rollbackFor = Exception.class)
注解大全