黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)_哔哩哔哩_bilibili
自用,为了能让自己快速了解springboot及前后端分离开发流程写的,搭配黑马学习文档食用,所以会略去亿些细节。
前端工程化:
定义:
模块化
组件化
规范化
自动化
环境准备:
nodejs,vue-cli
创建过程(图形化页面创建):
到相应目录下打开命令行,输入
vue ui
按需求创建即可
初始化项目结构了解(vue2,只添加了router):
vue项目开发流程:
在index启动:
index中默认引入了main.js(入口文件)
main.js导入组件并挂载到index的app上
App组件负责控制子组件展示
路由:
router负责控制页面的跳转及内嵌子组件的展示
三要素:
路由表注册
放置对应的"a标签"router-link:
在需要的位置放上组件以展示:
打包部署:
打包:
对应目录下输入npm run build等待打包完成
部署:
nginx了解与安装:
安装:安到无中文路径下
文件结构了解:
部署:
将打包好的文件夹放到html文件里
注意启动不成功可能是端口被占用,可在对应目录下修改启动的默认端口
管理和构建java项目的工具
maven:
1.依赖管理,避免依赖冲突
2.统一项目结构
maven项目结构:
3.标准化项目构建流程
maven介绍
先查本地仓库,没有就去私服查,还是没有就去中央仓库
安装,配置本地仓库,远程仓库,环境变相配置
全局配置:p52
Maven坐标:
定义项目,引入依赖
依赖管理:
配置后
依赖传递
依赖范围:
Maven生命周期:
web后端开发-springboot
web入门
入门程序
HTTP协议:
请求协议:
格式:
响应格式:
协议解析:
后端接收请求:
webSocket
HTTP协议封装:
tomcat
三层架构
单一职责原则,易拓展...
分层解耦
把耦合部分拿个容器管理
实现容器的原理:
控制反转,依赖注入
控制反转IOC详解:
四个注解声明
Bean组件扫描:
依赖注入 详解:
同类型依赖冲突解决方案:
Mybatis
持久层框架,用于简化JDBC的开发
入门程序:
初始化:
数据库连接
数据库配置:
用户类,Mapper,测试:
JDBC简介
数据库连接池
切换连接池:
lombok:解决实体类臃肿问题(getter setter,toString....)
mybatis实践:
预编译sql
mybatis占位符:
数据封装:
不能自动封装的字段在数据库有值,但返回时值会变为null
解决方案:
起别名:
驼峰命名:
结果:
参数注意:方法中形参名与sql中占位符参数名不一样时会报错
解决:保证占位符与形参名一致
复杂sql语句的编写:对应xml配置文件
注意一定要保证resources目录下的包路径与mapper路径一致
见day09资料讲义
管理xml文件的插件:
MybatisX
动态sql
也一般有if就有嵌套
打通前后端案例:Tlias智能学习辅助系统
开发规范:REST
REST(Representational State Transfer),表述性状态转换,它是一种软件架构风格。
基于Result类统一响应返回数据格式:
开发流程
删除部门:
用@PathVariable接受前端传来的id
新增部门:
使用@Requestbody接收部门json格式数据
要在业务层(Service)补全数据,创建时间,更新时间...
员工管理:分页查询
需要使用PageBean类当做回传给前端的数据格式
控制层使用@RequestParam接收两个参数
业务层调用持久层的俩接口分别获得总数与当前分页并封装好
持久层负责sql语句的编写,回传数据给业务层
要点:业务层调的是俩接口在将数据封装
分页插件实现分页查询:
引入依赖,改动业务层与持久层,
区别@RequestParam和@RequestBody和@PathVariable
@RequestParam:
@RequestBody 一般拿json格式数据
@PathVariable 拿请求路径花括号的数据
上传图片
前端实现:
1.file域
2,请求方式为post
3,编码方式enctype设置为:multipart/form-data
后端实现:
单独写个控制类
服务端会将前端的文件暂存到临时文件,运行完后会删除,所以要将文件存起来
俩存储方式:
本地存储:
再次上传一个名为1.jpg文件时,发现会把之前已经上传成功的文件覆盖掉:保证文件名唯一
随机文件名
本地存储缺陷:
对象存储服务
配置文件
参数配置:
将分散在工具类及其他文件中的动态参数放到一起以方便管理,通过@Value注解来在需要的地方进行注入
-
endpoint //阿里云OSS域名
-
accessKeyID //用户身份ID
-
accessKeySecret //用户密钥
-
bucketName //存储空间的名字
.....
@ConfigurationProperties
相当于@Value的批量注入:
yml文件
登陆
由于http协议是无状态的协议,即每次请求都是独立的,因此服务无法知道请求时用户是否登录,所以要进行登录校验
实现:
定义一个工具类,写好生成令牌与解析令牌的方法,在登录控制层调用并检验
过滤器:
注意导入的类是servlet的
...
拦截器:
...
全局异常处理:
事务管理
使用情景:
删除部门时还要把该部门下所有员工删除
AOP:
了解一个技术是干嘛的,在哪里有让自己快速了解的途径
该技术实现的关键点(步骤)在哪里
核心技术:
连接点,通知,切入点,切面,目标对象
区别连接点与切入点
..
执行过程:
通知类型:
切入点(提取注释指定的原始方法):
通知执行过程:
切入点表达式:
连接点:
案例实现
注意不要将@Log多注释给员工业务层的登录方法吗,不然会报错
springboot原理
配置优先级
有关Bean的
Bean的获取
Bean作用域:
一般是前两个
第三方Bean对象:
加个@Bean注解交给IOC容器管理
一般是在配置类声明:
小结:
自动装配原理
....
技术栈:
Maven高级
分模块设计
步骤
将pojo,uitils等单独划分一个模块,在其他模块要用时在从pom引入
继承与聚合
常见打包方式:
创建父工程步骤:
版本锁定
区别:
聚合
小结:
私服:
黑马有配置文档参考