- 博客(523)
- 资源 (7)
- 收藏
- 关注
原创 tomcat 目录结构组成
现在非常多的 java web 服务部署在 linux 服务器中,我们服务器中的 tomcat 会有各种文件路径,看下它有哪些文件。
2025-04-02 16:52:33
415
原创 java maven依赖传递以及版本冲突
依赖中 exclusions 掉某个子依赖,目的是防止内部依赖往外部传递,比如 A -> B,B 项目中有 C 依赖,如果 A 没有直接的 C 依赖,那么 A 使用的是 B 中的 C 依赖的版本,当 B exclusion 掉了 C,则表示这个 C 依赖无法传递到 A。首先得明确,并不是 A 自己的代码逻辑使用 4.0 的 C,然后 A 项目中运行到 B 中的代码时候就按照 1.0 的 C 去跑,并不是这样的,统一在 runing 的 A 项目统一使用一个版本的 C 的依赖在 run。
2025-03-14 19:22:22
388
原创 服务调用时,多种超时时间的差别
我们在进行服务调用时候,可能会看到非常多的超时时间的配置,那这些不同的超时时间的配置有啥区别呢?一般较成熟的企业,当作服务调用时候,会有比较成熟的各种超时时间的默认配置,和配置介绍说明。
2025-02-25 13:42:39
237
原创 调用下游时候发现超时一般怎么排查
如果在调用方的超时错误日志中强制记录下游服务唯一标识(如服务名/IP+端口),这样上游也能很快判定出下游哪个服务有问题(好的方式)排查 sql 慢查询(mysql 的 slow_query_log),企业工程侧一般会有一些 mysql 平台能看到这些慢查询记录。一般工程侧,各公司会有一些 trace 追踪平台或者工具,能够查出来调用链的情况,然后下游服务的调用时间也会有展示出来。长期可以针对性的优化,比如数据库问题优化数据库,多线程问题优化多线程代码。有些企业平台侧能看到上有调用超时的记录情况图表。
2025-02-21 18:01:48
347
原创 后端开发-分页游标设计(解决大数据量分页查询时的性能问题)
一般来说 order by 的不是索引字段,或者这个字段不能添加索引,那么不建议分页游标来做,如果非要用分页游标,也需要你贴紧一个有唯一索引的字段来做,但即使是这样,首页查询也会全表扫描,后续页查询时因为会先执行 where 中的语句能缩减一点点范围。如果使用一页一页的查找数据,按照每页 10 条查找,你查找第一页,因为 id 是主键索引你能快速查找到,然后后端多返回查找到的最后一条数据的这个索引字段 id(要求这个索引需要唯一)如果你遇到的是上方描述的场景,那么分页游标就是你很好的选择!
2025-02-20 18:27:26
1147
原创 springboot+mybatis按条件分页查询多张表
使用 join 进行多表连接查询,使用 pagehelper 分页插件,通过 MyBatis 的。和 JOIN 语句实现多表关联,使用 MyBatis 动态 SQL 标签(如 )处理条件组合。我希望做分页查询用户数据,用户数据为各个表内信息的汇总,并且这个分页查询会根据各种条件来查询。创建一个 mapper 接口 selectUserWithConditions。特殊情况下:如果多张表数据量很大,线上查询流量又大,怎么办?创建 dto 做查询数据接收的对象。那么通常该如何做呢?
2025-02-17 20:34:18
445
原创 springboot+mybatis进行普通事务操作transaction
如果你是 mysql 单个数据源,一旦配置好 yml 中的 msyql 和 mybatis 之后,一般对 Service 中的方法上头加上 @Transactional 就可以直接对其开启事务了(通常情况),使用上 @Transactional 表示该方法中如果抛出未捕获的异常时就会触发回滚,这样的异常是 RuntimeException 以及子类或者 error 错误时能回滚,如果是 IOException SQLException 等异常不会回滚。
2025-02-12 17:49:13
891
原创 springboot配置mybatis/mybatis plus
使用 mybatis 首先需要写 entity 数据库操作对象// fields如果你使用 mybatis plus,还会有好用的注解来提供 @TableName,@TableField(“name”) 等使用 mybatis 首先需要写 mapper 接口,接口中的方法名和下方待编写的 xml 中的方法名是一样的@Mapper// 自己要写的 function如果你使用 mybatis plus,它提供了一个 BaseMapper 可以继承,继承后其中有许多定义好的基本的数据库操作方法可以使用。
2025-02-11 20:21:21
1160
原创 springboot配置redis
配置完成 yml 后,你无需再配置 RedisTemplate 和 StringRedisTemplate 的 Configuration 代码了,因为 Spring Boot 会自动配置 RedisTemplate 和 StringRedisTemplate,你可以直接注入它们来操作 Redis@Bean// 使用StringRedisSerializer来序列化和反序列化redis的key值。
2025-02-07 21:14:11
321
原创 springboot配置mysql连接/配置mysql数据源连接池
如果你配置单个 mysql 数据源,你完全做 mysql 数据源的 configuration,无需指定数据源和 mapper 包的映射关系,即你只用配置 yml,然后对应接口打上 @mapper 注解,就可以使用 mybatis 提供的 api 来进行数据库的操作,操作数据库 @mapper 标记的接口会自动使用 yml 中配置的唯一的数据源。你使用 springboot 框架,希望配置 mysql 数据源,你可能使用 mybatis 或者 mybatis plus 框架。
2025-02-07 20:38:01
1287
原创 springboot启动后初始化执行一批代码
还有一个也比较常用 ApplicationRunner,用起来和 CommandLineRunner 类似。其实 springboot 提供了很多接口来实现这一点,这里用 CommandLineRunner 方式。并且你甚至可以定义多个 CommandLineRunner 实现类,可以通过。应用启动后会立即执行,并且可以访问命令行参数(args)注解或实现 Ordered 接口来影响执行顺序。如果想各种顺序想写在一个类中,你甚至可以这么写。希望在应用启动后执行一些代码逻辑。
2025-02-06 17:30:52
259
原创 springboot+mybatis(mybatis plus)分页查询
如果你使用 springboot + mybatis plus,因为 mybatis plus 兼容 mybatis,所以即使你使用 mybatis plus 依然可以用如上方法来做分页查询,当然 mybatis plus 既然是 plus,他自己也有分页查询的一些能力,再往下会有 demo。如果你使用 mybatis 但不是 spring 项目,那么你需要首先引入 pagehelper 相关依赖,然后配置 mybatis-config.xml 分页插件,再然后在代码中使用即可。
2025-02-06 16:54:07
1118
原创 springboot项目的单元测试
Spring 中如果 Parent 类中通过 autowire 方式注入 Child 类,然后我在 springTest 测试方法中去 new 这个 Parent,我可以使用到其中的 Child 吗?回答:不行,会导致 Child 是 null,报空指针异常,因为 new 关键字创建的实例不是由 Spring 容器管理的,所以 Spring 不会为这个实例注入任何依赖。在 test 包下编写,对于普通的业务逻辑,直接常规使用 junit 的 @Test 注解即可。这样可以让其成功注入 bean。
2025-02-06 14:48:39
395
原创 springboot配置log日志
当然如果你不指定这个路径也可以,因为 springboot 会根据项目引入的日志框架,自动加载 resources 的日志配置文件,比如 springboot 项目是有 spring-boot-starter 的(其中含有 spring-boot-starter-logging),会尝试加载 logback-spring.xml 和 logback.xml 如果二者都不存在,则使用内置的默认 Logback 配置。如下是简单的日志文件配置,使用的是 logback 日志。
2025-02-06 14:29:03
639
原创 idea上git log面板的使用
当在 idea 中你选中某个分支后,这个分支在 git log 路线图中会以一条直线来呈现。每个节点表示 commit 到了一个新的版本了。路线中,每条路线其实是一个分支。
2025-01-15 14:43:32
846
原创 java远程调试debug
自己随便弄一个 idea 的项目,其中配置 configuration,Remote JVM Debug,输入被调试服务所在的 ip 以及 port。被调试的 java 服务需要开启允许被远程调试的配置,具体就是启动脚本中,加上允许被远程调试以及相应端口。
2025-01-11 16:12:44
327
原创 css样式:flex布局
一种非常常用的布局方式,Flex 是 Flexible Box 的缩写,弹性布局指定容器 display: flex 即可,可以将其定义为一个Flex容器Flex布局一般只作用到直接的子元素上。
2024-11-16 17:38:50
1238
原创 springboot项目无法启动的常见问题
我自己一直认为 springboot + orm 框架对 web 项目做了太过度封装,导致其中一旦出现了一些问题,让开发者很难抹清头脑,很多问题是一些规则上的或者更偏向于底层的问题。但是框架工具的作用的初衷原本又是希望开发者更好的关注“代码创造”,关注要做的东西,而不是把关注点放在解决框架问题,排查底层的规范问题上头看一些问题吧。
2024-11-09 10:45:06
304
原创 通过命令查看某个git项目中每个人的提交代码行数
在 git 项目中通过命令方式查看,比如项目名是 abc,直接在 abc 下使用命令可以查看。查看 wangxiaoming 的代码行数,增量的和移除的。可以看到新增的代码行数,以及移除掉的代码行数。
2024-01-08 10:46:35
766
原创 代码模版-实现form表单输入框和label统一对齐,vue+elementui
el-form 中每个 el-form-item 都是一个单独的小项目,默认 el-form-item 都是换行的,除非加上。通过 vue + elementUI 实现 form 表单中输入框还有 label 统一对齐。属性 right 表示右对齐,即可对齐,但是不想都弄成 1 列,可以让他们都是 1 行,属性表示前面每个 label 宽度是多少,然后设置。有的输入框长度不一致,前端谷歌调试后,通过。想设置对齐的话,先可以设置。属性,就是表示弄成一行。
2023-11-20 16:29:02
6737
1
原创 代码模版-实现重置按钮清空表单数据,vue+elementUI
就能找到这个 ref,然 ref 自己有一个 resetFields() 函数,它的执行可以清空 ref 所在的这个 el-form 中的表单数据,依据 el-form-item 的 prop 来清空,这个 prop 需要和 v-model 相匹配。具体可以看下下放代码,点击「重置」btn 触发 resetForm() 函数。重置 btn 的作用是为了清空前面 form 表单中的数据。我们使用 elementUI + vue 来做。我们在 el-form 组件中加上。页面上可能会有「搜索」按钮。
2023-11-15 18:04:10
1789
原创 maven构建拉依赖Malformed \uxxxx encoding
我在 mac 端本地拉项目下来,第一次点击 import pom 来产生第一次 build,发现能够拉依赖下来,在左侧也能看到依赖(jdk1.8 下的)但是当我第二次 import pom 时候发现左侧依赖全消失了,而且提示错误。
2023-10-19 00:14:32
856
原创 入职后快速配置mac方便快速上手业务for研测向
比如 idea plugin 中搜资源可能会很慢,一般公司可能会有代理配置,帮助你快速拉取,看公司文档,或者以仓库形式,或者有代理形式。这个上面 maven 配置讲解了它的位置在哪,然后具体配置可以找公司要 settings 可以参考这个文档。java 从什么途径下都行,有人从公司中下载 jdk 也可以,官方也可以,可以参考这个。mac 会自带有 git 不用再下载了,主要是配置一下,参考。如果有下载公司视频会议软件,可以配置视频效果,如背景这些。看公司用的什么 rpc,有的用 thrift。
2023-10-17 16:29:49
242
原创 mac网页加载缓慢甚至访问不了(charles原因)
mac 中「网络」-双击「ipv4」,新弹窗中「代理」关闭「网页代理http」和「安全网页代理https」因为 charles 异常退出,导致网页代理还是开着的。
2023-09-26 12:02:21
592
原创 maven settings.xml文件(包含了配置阿里云镜像)
注意你要是编辑这块位置需要给 iterm2 或者终端开放磁盘完全访问权限,否则创建文件会失败。如果是编辑 settings.xml 文件,那么需要 chmod 一下。「安全性设置」-「完全磁盘访问权限」
2023-09-25 18:54:48
1156
原创 代码模版-vue设置进入某个页面时该页面菜单item高亮
比如说,左侧有众多菜单栏,当点击一个菜单栏,进入一个页面,要保证左侧此页面对应的菜单栏 item 是高亮的。
2023-07-29 22:03:26
450
原创 代码模版-登录成功后跳转首页
默认已经安装了 vue-router 路由依赖已经写好了 src/router/index.js 和 src/views/login.vue 组件了。
2023-07-26 16:34:08
488
原创 代码模版-前端vue实现记住我checkbox功能
需要引入 vue-cookies,element-plus 依赖,并且确保 src/main.js 中已经 use 了 ElementPlus,这个可以看我前面的教程。这里 js 实现的效果是,如果勾选了记住我,那么下次再打开这个界面时候,能发现 form 表单中已经保存了上次用户密码(实际就是 cookies)如果没有勾选记住我,那么下次打开这个登录页面,会发现用户密码 form 表单还是空的,还需要你输入一遍。使用 element plus 样式。
2023-07-24 21:32:26
284
原创 代码模版-vue实现验证码图片刷新操作
还有比如说,想要实现登录失败时候验证码图片更换,思路也很简单,就是登录时候判定如果失败就调用下 changeCheckCode 这个函数即可。这里是图片验证码,找到图片验证码地方,设置 src,由 js 控制,设置 click 事件,由 js 函数控制。点击图片触发 changeCheckCode 函数执行。
2023-07-17 21:22:15
653
原创 代码模版-vue使用md5对pwd加密
所以在登录请求前需要额外判定 formData pwd 和 cookies 中 pwd 是否一致,不一致需要 md5(pwd),一致就直接 pwd,不需要套 md5。登录后 cookies 中直接赋 formData.pwd,因为它已经是 md5 后的了,这样再下次请求时候,从 cookies 能直接拉到 md5 后的 pwd,然后将其赋给 formData,同样这里有一个判定,如果formData.pwd 和 cookies 中一致,就不需要再给其套 md5 了。我们这里可以按照想法 2 来实现。
2023-07-17 21:13:52
576
原创 代码模版-使用vue-cookies
所以一旦之前已经登录有这个 loginInfo 的 cookies 数据的话,formData 会从 cookies 中拿数据,这时候拿到的 formData 的 pwd 数据可是加密后的(要知道手输 input 的 pwd 可是未加密的数据),所以一般在登录 request 之前先要判定下,formData 中的数据和 cookies 中不一致的话就要给 formData 加密,来确保 formData 一定加密后的数据,一致的话那肯定就是 cookies 中的 pwd 数据(即被加密后到数据)
2023-07-17 20:51:25
183
原创 代码模版-vue3使用router的写法
同时在 src 下创建 views 文件夹,其中主要是 vue 组件,来和 index.js 中的路由对应。vue3 项目中 src 下创建 router/index.js,其中主要声明路由。vue3 一般使用 vue-router,npm 下载 vue-router 包。在 App.vue 这个根组件中的 template 中添加。在 src 下的 main.js 中添加使用路由,新增。最后 run 起来查看是否生效即可。index.js 中有。
2023-07-03 18:14:42
535
原创 代码模版-vue3简单引入使用elementPlus
最后在 views 文件夹中(这里是专门存放 component 的地方)的某一个 component 的 template 中使用上 elmentPlus 即可。然后 vue3 项目的 main.js 中初始化。
2023-05-09 17:15:07
121
typora-cobalt-theme-master-v1.1.zip
2020-06-01
Xcode Midnight.jar.zip
2020-05-30
Windows Update Blocker v1.1.zip
2020-04-19
mysql练习题-sql_practice.pdf
2020-03-12
mysql练习题-sql建表文件.txt
2020-03-12
datagrip 数据库切换主键的问题
2024-11-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人