后端
查看cpu跟死锁都是jstack 查看线程快照 查看oom是jmap 查看内存快照
websocket
前端 必须是ws协议
后端
postman
同一个服务重启两次
debug 看
步过即不进入方法
步入不会进入jdk的方法 但是会进入自定义方法add
强制步入 会进入jdk的方法跟自定义方法 sout会进去 看源码的时候用
步出会跳出write方法 步过只是会跳过write方法中的每一步
异常断点
idea
get请求的参数只能放到url 但是可以用实体类接收
post请求的参数可以放到请求体也可以放到url json数据必须在请求体
url、两种表单都行 但是json不行
postman
MultipartFile
为false才能通过request获取form-data中的文件
为true通过multipart获取文件@Value("file") MultipartFile file
发送xml数据 webservice发送的数据就是xml的
pom
读配置文件
@value配合@RefreshScope才能热更新@ConfigurationProperties不需要
@Value 如果是static或final的不生效 不支持实体类list
@ConfigurationProperties(prefix = "")
Environment
@PropertySources只能读取properties文件
yml文件使用变量
cpu飙高 jstack线程信息
cpu飙高也是jstack查看线程信息
原因1死循环2频繁的垃圾回收
19663是进程id 问题位置Math.java 22
OOM内存溢出 jmap内存快照
原因1大文件导出2流没有及时关闭
解决1及时回收对象2调整jvm参数
定位到oomList
java线程死锁 jstack线程信息
jstack获取线程信息
jstack 进程id
搜索deadlock 死锁位置
解决
方法1锁排序 方法2给锁增加过期时间
频繁fullgc jmap内存快照
多数据源dynamic 蜗牛
@DS没有值查询的是默认值master
slave会按照负载均衡算法访问slave_1 slave_2@DSTransactional 保证多数据源的事务一致性
动态添加删除数据源
多租户 蜗牛
多租户方案
一个租户一个数据源 专门表存储数据源信息
使用配置类初始化所有数据源
在访问路径上加上数据源标识
动态添加 最好表里面也添加数据
xxl-job
maven
parent作用统一管理依赖的版本信息 只是dependency不需要写 并不是直接引包
war包如何运行1源码运行
访问路径http://localhost:9999/activiti-app
2打成war包放到tomcat运行
非maven项目打成jar包
IDE(IntellijIdea )非Maven项目打 运行包 Jar包_idea非maven项目打jar包-优快云博客
若已经存在META-INF文件夹 不要删除
注意生成包的大小
内外网端口映射
https://atc.spasvo.com:8104 atc.spasvo.com对应222.92.47.194
映射到内网的nginx 转发到另外的服务
接收xml消息
@RequestBody
属性名保持跟xml标签一致 根标签是xml
响应xml消息
1produces 返回xml消息
2mediaid有上级标签image
前端
f12 看
黑马前端Debugger实战视频教程,前端开发debugger调试秘籍_哔哩哔哩_bilibili
前一个小时讲f12可跳过
element
1可以在浏览器写完样式粘贴到代码 2可以通过上下键微调比例
3使用选择器去定位dom元素
console
console.dir对象方式打印 树状结构 适合比较复杂的对象
source断点
相当于跳到下一个断点 没有下一个断点就会执行完
跳过empty函数到getNum 相当于步过
单步调试会进入函数 相当于步入
最后一个断点失效 相当于没有断点 但是断点还在
network
只看ajax请求
找bug
报错从上往下看
找到像你写的代码的地方点进去看报错位置
点击报错会快速到对应位置
如何快速找到报错位置在项目中位置 右键在边框显示
2在报错位置下断点知道是哪里调用的 delById少了接收参数id
vue2入门
右键open in live-server 把vue2的js下载本地使用 下面的是html文件
.vue文件叫组件 每个.vue 组件都由 3 部分构成template script style
组件可以由内部的Data提供数据,也可以由父组件通过prop的方式传值
兄弟组件之间可以通过Vuex等统一数据源提供数据共享
前端代码报错在console看 能看到报错行数 改完之后刷新下
如果标签需要频繁切换使用v-show v-if不会创建标签 v-show使用的是css代码隐藏
vue-cli脚手架
npm -v
安装npm install -g @vue/cli 必须安装vue-cli vue命令才有用
组件传值
.vue文件就是组件
父子组件通过props传值 兄弟组件通过Vuex等统一数据源提供数据共享
app父组件向movie子组件传title rating movie跟hello组件是兄弟组件
vue2 template下只能有一个根标签 所以一般有一个div包裹
axios网络请求
then成功之后执行 catch 异常之后执行
1axios会自动把数据转成json2axios是异步的3async/await是同步的
前端8080端口后端8088端口跨域 后端解决的跨域使用的是注解
一般在created函数发送网络请求 必须使用箭头函数this才代表vue对象
在main.js中定义全局url
前端路由vue-router
index.js专门存储路由
点击发现音乐 下面显示Discover页面的发现音乐 /代表首页 重定向到Discover页面
导航守卫
相当于后端拦截器没有登陆的跳转登陆页
数据库
慢sql优化
1查看慢查询日志2优化sql3查看执行计划优化sql索引