自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 Java 实习记录 10 ——提升系统响应时间的项目架构

入职新公司后,发现公司项目有着优秀的系统架构设计,一定程度上提高了系统的响应时间。

2024-10-09 09:19:44 385

原创 Java实习记录 9 ——使用mybatis在xml文件中添加一条数据返回生成的主键 id

标签,为了实现添加完成后返回数据库生成的自增主键 id,主要使用useGeneratedKeys、keyColumn、keyProperty 这三个属性。接触到一个需求为,向数据库中添加一条数据时,同时要向另一张关系中间表添加数据,这就要求第一次添加时要返回数据库生成的主键 id 提供给在添加关系表时使用。标签将常用的 sql 语句提取出来,如查询字段、查询对应的表等。更加熟练使用 mybatis 面对复杂情景的使用。xml 编写插入 sql 语句时,主要使用。在 xml 中编写语句时,可以使用。

2024-09-28 15:48:43 388

原创 Java实习记录 8 ——使用 XSSFWorkbook 实现复杂表格下载(背景色、对齐方式、单元格合并等操作)

要求实现对课程数据进行 Excel 表格下载。生成课程时有三种不同的阶段,所有有三种 Excel 表格下载。使用到 XSSFWorkbook 解决。表格主要包含三部分,第一行为课程名称等信息;第二行为课程单元信息的表头;第三行及之后为主要的课程单元信息,包括单元名称、单元描述等等。学会了一种下载 Excel 的方法,加强了对复杂 SQL 语句的编写能力,了解了企业开发的代码规范重要性。根据需要给对应单元格设置样式即可,这类给出一些示例。4)根据数据依次设置每行数据。

2024-08-17 11:28:26 519

原创 Java实习记录 7 ——使用 Callable 多线程优化接口开发

主要要求查询,课程的名称、课程适合的年龄段、包含单元数量、周计划数量、活动数量以及最后一次更新时间。该接口的 service 层实现类方法中,首先进行参数校验,获取分页参数以及登录用户信息,校验他们是否为空,不为空进行数据查询。使用多线程并发到三个不同数据库中查询,最后同时获取结果,不必再等待上一个执行结束,下一个可并发执行,加快了接口响应速度。在企业中实践了多线程的使用,实现不仅仅把功能完成,同时也进行了对接口的优化,积累了跟多企业开发经验。主要在统计课程单元数量、周数量、活动数量时使用了多线程。

2024-08-06 20:02:21 318

原创 Java实习记录 6 ——企业开发流程

上回提到,开完需求评审的会议后,组长将这次需求实现交由我来负责。拿到需求文档和设计原型,我便开始了这次需求实现的详细设计文档的编写,主要包括需求包括的功能点,实现需求所用的的数据结构,要增加或修改的接口有哪些等等。编写完详细设计后,进行了详细设计评审,产品和设计查看有没有遗漏的功能点,开发组长查看是否能正确实现,测试开始构思编写测试用例。这次主要来介绍详细设计评审后面的流程。

2024-08-03 16:15:38 280

原创 Java实习记录 5 ——多语言环境下实现对接口响应内容翻译

其他不需要改变,仅仅对原接口的 response 进行处理,根据 Key 获取要翻译的属性,使用 ObjectMapper 将 response 解析为字符串对象,在将其转为 JSON 对象,利用递归遍历对象,根据从数据库中取出来的属性配置取出 JSON 中要翻译的文本存入到一个 List 中。实习过程中接触到一个需求,要求实现用户在页面切换语言后,页面展示语言要翻译成对应语言,不需要改变原数据库中内容,刷新页面后内容会变回原语言,当再次选择语言时,再展示翻译后内容。了解了一种翻译的第三方依赖。

2024-08-03 15:45:16 502

原创 Java实习记录 4 ——Vue2 父子组件进行数据传递

了解了一种新的父子组件交互数据的方式,从前仅仅知道使用如 Vuex 以及 Pinia 这类第三方工具进行数据传递。加强了我对组件这一重要概念的理解,将一个大的页面拆分成一个个组件,逐个实现,大大加强了代码之间的解耦性和可读性。实现思路:父组件是一个 table 标签,在 thbody 标签内引入子组件表示一行,每行数据都写在该子组件内。存在问题:要将父组件数据传递到子组件。子组件点击加减按钮时,要将数据和事件通知父组件,父组件再调用对应方法,根据传递来的数据在指定位置加减行。

2024-07-22 13:46:04 298

原创 Java实习记录 3 ——结合Redis解决接口幂等性问题

请求到达后端,首先进行非空校验,然后拼接前缀形成 Redis 的 Key,如果查询不为空则表明其他请求正在修改该课程,直接返回错误。如果为空,则可以进行修改,将该课程 id 存入 Redis,然后判断是否有正在编辑的课程副本,如果存在已经生成的副本,则直接返回该副本 id ,在这个基础上继续修改。如果不存在,则生成一份原课程的副本,将副本id返回给前端。而在企业中,没有直接修改原数据,而是修改复制一份的副本上,在最后确认修改完毕后再将原数据标记为删除状态,修改后数据标记为发布状态。

2024-07-18 22:35:56 479

原创 Java实习记录 2 ——接触需求

在企业中开发与之前学习不一样的是更加注重文档的编写,在最开始接到这个需求后,按照之前的开发习惯,我并没有重视对文档的编写,而是上来就开始尝试进行编码实现,没有文档指导,在开发个人小型项目仍可以顺利完成,但到企业级项目开发中则不同,缺乏文档指导,摸石头过河式的开发方式已经行不通了。根据需求文档和产品设计原型进行页面详细设计,完成了包括设计出该页面需要的那些组件、组件之间的关系、组件所使用到的数据结构和组件所使用到的方法。完成详细设计后,交由组长评审,组长对组件的数据结构和组件之间的方法,给我提供了优化思路。

2024-07-17 18:54:22 256

原创 Java实习记录 1 ——初入职场

运行项目时,发现公司没有具体文档,运行流程基本依靠开发组长口头教授新员工,待我成功运行项目后,我根据自己经历的部署流程编写了一份运行本公司项目的文档。入职第一天,办理各项手续,在行政引导下入座工位,进行开发软件安装和电脑环境搭建,包括 idea、vscode、navicat等等,向公司申请GitHub、VPN以及openVpn的使用权限。每天上下班打卡、编写日报,每周结束后编写周报,总结自己一天、一周的工作内容和进度,让我更加体会到了在企业中工作的规范。开展新员工培训,了解公司项目面向用户和核心业务功能。

2024-07-17 18:53:51 539

原创 Java并发之ThreadLocal理解

ThreadLocal理解与运用

2024-02-13 14:53:10 311 1

原创 Java并发之volatile关键字理解

volatile见解

2024-02-06 18:11:33 361 1

原创 Spring的IOC容器初始化流程

IOC容器初始化过程及先准备注册BeanFactory后置处理器,然后启动tomcat并借助BeanFactory完成非懒加载单例Bean的实例化。

2023-12-06 15:32:29 197 1

原创 SpringBoot启动流程

SpringBoot启动,本质是加载各种配置文件信息,然后初始化IOC容器并返回。debug追踪源码发现SpringBoot启动主要分为两方面:new SpringApplication()、与执行run方法。

2023-12-05 20:32:14 163

原创 Spring的 @ControllerAdvice 之 ResponseBodyAdvice对响应结果进行增强

对响应结果进行统一结果处理时,有时会出现有的接口未进行封装,为了解决该问题,可使用@ControllerAdvice 注解对响应结果进行aop编程增强。

2023-10-21 09:27:03 277

原创 vue之使用箭头函数导致表格无法刷新数据

箭头函数本身没有this,但是它在声明时可以捕获其所在上下文的this供自己使用。所以导致this指向不是所需vue对象,表格刷新失败。但在使用监听器监听选择器绑定的value值时使用了箭头函数,请求响应后发现数据更新了但表格为重新渲染,仍为请求之前的数据。在使用初始化方法查询默认表单后,有使用选择器进行条件查询的需求。将箭头函数改为普通函数。

2023-10-19 19:54:07 298

原创 Spring加载后置处理器方式之模板方法

仅需在生成对象后添加后置处理器,对MyBeanFactory无需修改,实现代码解耦和。

2023-10-07 20:32:18 276 1

原创 微服务监控技术skywalking的部署与使用(亲测无坑)

注:本篇文章采用docker部署,采用8.2.0版本,版本一定要一致!

2023-08-08 11:27:09 1452

原创 Java中静态模板文件freemaker使用

面对大文本数据展示时,每次查询数据库费时费力,基于这种读多写少的需求,考虑使用freemarker生成静态文件,存入文件系统中,查询时直接展示文件,不必在查询数据库。FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。在resources目录下创建templates,在其中创建post.ftl模板文件。json数据源(这里为了方便手动建立JSON数据源,实际开发中可从数据库中查询)

2023-07-25 09:18:14 486

原创 视频上传时的分块与合并处理(断点续传)

视频上传是的分块与合并处理(断点续传)

2023-05-13 11:21:29 258

原创 结合redis实现关注收藏功能

这里使用redis解决该业务。

2023-04-24 20:32:35 331

原创 加快SQL效率的流程函数

在实际开发中,我们往往会面临根据传来的参数动态拼接sql语句的情况。

2023-04-16 20:15:12 109

原创 项目中好用的JSR303校验

前端请求后端接口传输参数需要校验请求参数的合法性

2023-04-08 20:07:46 325

原创 实际项目开发中MySQL多表查询的两个例子

当前我们知晓的学院地区id为二级地区,而由请求传来的id为一级地区id,故先在地区表中根据一级地区id查询出所有其子二级地区,再在院校表中查询出地区id在子二级地区id中的院校。通过院校名称模糊查询院校信息和所在地区,其中院校表中的area属性与地区表id关联,查询时要综合查询这两个表。从institution表中根据院校名模糊查询,and条件连接在地区表中查出院校地区名称。dto继承institution,并设置地区名称这个独有属性。

2023-04-01 20:31:10 235

原创 优雅的全局异常处理

捕获从controller层抛出各种异常进行处理,使系统整体优雅规范。

2023-03-26 09:06:36 97

原创 自定义元数据处理器

还在为重复编写写入某条通用数据到数据库而发愁嘛?快来认识一下这个好用的工具!

2023-03-18 17:38:07 185

原创 用Java发送邮件全过程

java发送邮件

2023-03-12 16:27:04 336

原创 从前端到后端全面解析文件上传

2.后端准备(SpringBoot+minio+mysql)2.1解决跨域2.2配置minio与mysqlpom依赖配置文件配置配置minio客户端

2023-03-07 20:36:03 652 1

原创 傻瓜式minio使用指南

傻瓜式minio使用指南。

2023-02-26 09:38:59 1545 1

原创 轻松上手nacos使用

微服务众多,它们的配置信息也非常复杂,为了提高系统的可维护性,微服务的配置信息统一在 Nacos 配置。通用配置可共享使用。配置无误后nacos会根据配置将服务拉至服务列表,并读取nacos中配置与本地配置合并后生效。微服务将自身注册至 Nacos,网关从 Nacos 获取微服务列表。3.在名为bootstrap.yml中配置。但可在nacos中配置优先本地配置。4.在nacos中新建配置。1.创建所用的命名空间。2.在工程中引入依赖。

2023-02-19 09:52:35 1188

原创 跨域问题及解决方案

基于浏览器的同源策略,会对请求进行跨域判断。当协议、域名(或主机ip)、端口号不一致时,则被判断为跨域请求。此时会导致:(1)请求从http://localhost:8081 到 http://localhost:8082 由于端口不同,是跨域。(2)请求从https://localhost:8081 到 http://localhost:8081 由于协议不同,是跨域。

2023-02-04 13:56:00 1393

原创 快速上手使用Elasticsearch实现高亮查询

高版本Elasticsearch的json解析需2.0.1版本,需手动修改jakarta.json版本.

2023-01-19 18:40:48 482

原创 快速上手SpringBoot下即时通讯技术WebSocket

快速上手SpringBoot下即时通讯技术WebSocket。

2022-12-11 09:45:10 375

原创 Token验证登录用户

token登陆验证方案

2022-11-06 10:38:32 1789

原创 实操!!!论坛项目开发流程(java)

大二学生第一次实操完整项目

2022-10-06 17:49:29 2139 2

原创 Java实现图书管理系统(基于数据库)

图书管理系统

2022-09-10 11:01:40 3174

原创 Java学习——算法(盛水最多的容器:双指针)

双指针思想

2022-08-01 16:36:41 312

原创 Java学习——springboot整合mysql、redis、mongodb

springboot快速整合mysql,redis,mongodb

2022-07-16 17:48:15 1333

原创 Java学习——redis安装与启动

初步进入Redis

2022-07-10 19:15:09 399

原创 Java学习——Springboot整合mybatispuls快速实现单表操作

MybatisPuls实现快速单表操作

2022-07-02 15:10:33 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除