- 博客(40)
- 收藏
- 关注
原创 在数据字典(如性别、学历等枚举型数据)的设计中,**推荐业务主表只存储字典ID,不冗余存储名称**
通用设计:业务主表只存字典ID,通过关联字典表或缓存查询名称。即使有10多个字典字段,通过合理的索引设计和缓存优化,性能完全可控,且能保证数据一致性和可维护性。冗余存储名称仅适用于极端特殊场景,需谨慎权衡。
2025-11-03 14:58:54
925
原创 在设计数据库表结构时,关于“创建人”和“修改人”的字段设计
通用设计:只存 ID,关联用户表查询名称。这是符合数据库设计规范、保证数据一致性、减少维护成本的最优方案。只有在明确需要“固化历史名称”的特殊场景下,才考虑同时存储 ID 和名称(需做好注释说明原因)。
2025-11-03 14:49:23
371
原创 HTTP 请求方式当中GET请求需要请求头吗?
通常。GET 请求主要通过 URL 传递参数,服务器一般不关注其头部。强行设置通常也无效,甚至可能导致请求失败。
2025-09-25 17:02:09
367
原创 HTTP请求头中content-type 有几种类型?
Content-Type 的类型非常多,但可以归纳为几个主要类别。textimagemultipart下面是详细的分类和常用示例。
2025-09-25 17:01:11
395
原创 maven pom文件中<dependencyManagement><dependencies><dependency> 三者的区别
这是一个非常核心且重要的 Maven 概念。dependency。
2025-09-25 15:14:33
693
原创 Maven setting文件中<mirrors>(镜像)和 <servers>两个标签的区别
中匹配的镜像(如阿里云),只有当访问的仓库没有对应的镜像时,才会直接访问原始仓库(如Nexus私服)并使用其认证。未指定),Maven 会直接访问私服地址,使用。的阿里云镜像,优先从阿里云下载,使用。中是否有镜像匹配当前需要访问的仓库。后,Maven 仍会优先使用。,Maven 都会先检查。由于没有镜像匹配该私服(Maven 会匹配到。的认证(如果需要)。
2025-09-25 15:06:56
401
原创 MyBatis的缓存机制是如何工作的?
一级缓存是 SqlSession 私有的“本地缓存”,无需配置即可使用,适合单会话内的重复查询。二级缓存是 Mapper 共享的“全局缓存”,需手动开启,适合多会话共享数据的场景,但需注意缓存一致性(通过配置合理的刷新策略)。实际开发中,可根据业务需求灵活搭配使用,必要时结合第三方缓存实现分布式环境下的缓存共享。
2025-09-25 10:55:04
655
原创 从0到1构建支持日活千万级流量的网站/WEB系统详细指南
构建日活千万级的网站是一个系统工程,需要从业务规划、架构设计、技术选型、开发测试到运维监控的全链路协同。可扩展的架构:从设计初期就考虑水平扩展能力完善的监控体系:实时掌握系统状态,提前发现问题自动化运维能力:减少人工操作,提高发布效率数据驱动决策:基于数据分析进行优化和扩展持续优化迭代:定期复盘,不断改进系统性能和用户体验随着业务的发展,系统可能需要支持更高的流量(如日活亿级),此时需要进一步演进架构,如引入多区域部署、边缘计算、Serverless架构等新技术,以应对不断增长的业务需求。
2025-09-23 15:07:41
1606
原创 maven install和package 有什么区别
将项目编译后的 class 文件、资源文件等打包成指定格式的归档文件(如 JAR、WAR、EAR 等,由 pom.xml 中的 标签指定)。:在 package 命令的基础上,将打包好的文件安装到本地 Maven 仓库(默认路径为 ~/.m2/repository)。:当当前项目需要被本地其他项目作为依赖引用时(例如多模块项目中,模块 A 依赖模块 B,需先 install 模块 B)。:打包后的文件生成在项目的 target/ 目录下(例如 target/xxx.jar)。
2025-09-23 14:30:06
639
原创 @DSTransactional注解
若方法中涉及多个数据源的操作(如同时操作数据库 A 和数据库 B),@DSTransactional 会保证这些操作在同一分布式事务中。@DSTransactional 扩展了分布式场景,支持多数据源间的事务一致性(如跨库操作时)。注解生效需依赖对应的分布式事务框架配置(如 Seata 的 TC 服务、事务分组等)。:通常来自分布式事务框架(如 Seata、Sharding-JDBC 等),用于支持。,保证多数据源操作的原子性(要么全成功,要么全回滚)。
2025-09-23 14:15:22
268
原创 事务的原子性
(通常是 RuntimeException 及其子类),Spring 会触发事务回滚机制,将该方法中所有已执行的数据库操作全部撤销,以保证数据的一致性。在 Spring 框架中,默认情况下,当一个标注了事务注解(如 @Transactional)的方法执行过程中抛出。根本解决方案是排查 addA 抛出异常的原因(如数据库约束冲突、参数错误等),修复后避免异常发生,事务自然不会回滚。3,在方法中添加日志,观察异常抛出后数据库中是否有数据残留(若没有,则肯定是事务回滚了)。修复 addA 抛出的异常。
2025-09-23 14:11:28
394
原创 后端要接收 List<String>,参数是放在请求体(Body)里还是放在表单 (Form)
axios.post(‘/api/body/list’, items) // Axios 会自动将数组转为 JSON 并设置正确的请求头。如果是构建 API 供 App、前端 SPA(如 Vue/React)调用,强烈使用请求体(Body)方式。对于绝大多数现代 Web 应用开发,将 List 作为 JSON 数组放在请求体中是首选。我们可以根据 API 设计风格和前端框架的能力。如果是传统的 HTML 表单提交,或者前端框架限制只能提交表单,那么使用表单方式。@RequestBody 注解。
2025-09-20 13:06:12
336
原创 在 Spring Boot 中,一个请求只能有一个 @RequestBody
摘要:Spring Boot中每个HTTP请求只能有一个@RequestBody,因为请求体是整体数据。解决方案是将多个对象封装为外层对象统一接收。例如定义UserWrapper类包含两个UserJson属性,前端提交嵌套JSON格式数据。其他可选方案包括:结合URL参数传递部分数据,或使用Map接收动态数据。最佳实践是采用封装对象方式,确保数据结构清晰规范。
2025-09-20 11:11:29
217
原创 在 Spring Boot 中,针对表单提交和请求体提交(如 JSON) 两种数据格式,服务器端有不同的接收和处理方式,
在 Spring Boot 中,针对表单提交和请求体提交(如 JSON) 两种数据格式,服务器端有不同的接收和处理方式,核心是通过注解和参数绑定机制实现自动解析。**表单提交 (Form Submission):**主要用于浏览器向服务器发送数据,如用户登录、搜索等。数据被编码在请求体中,格式为 key=value,通过 application/x-www-form-urlencoded 或 multipart/form-data 类型的请求头告知服务器。
2025-09-20 10:56:56
948
1
原创 德州扑克可以教会我们的一些重要人生道理
你需要有清晰的判断力,知道哪些机会(工作、感情、投资)是值得你投入时间和精力的“好牌”,而哪些是应该果断放弃的“垃圾牌”。只要你的决策在长期来看是正向的(比如坚持学习、保持诚信、锻炼身体),即使短期内看不到回报甚至遭遇挫折,长期积累下来,你也一定会是人生的赢家。你获得的信息越充分,你的决策就越精准。在靠后的位置行动,你可以观察到前面所有玩家的决策,从而获得信息优势,做出更明智的选择。· 扑克哲理: “Tilt”(上头)是指因为之前的坏运气或损失而导致情绪失控,开始胡乱打牌,这是玩家输钱最主要的原因之一。
2025-09-20 10:01:18
954
原创 MyBatis 将时间字符串转换为了 Date 类型,导致时间错误解析。
摘要:MyBatis映射格式化日期时间时存在解析问题。纯日期字符串(2023-10-05)会被补全时间(00:00:00),而纯时间字符串(14:30:00)会被附加默认日期(1971-01-01)。推荐解决方案:1)直接使用String类型接收格式化结果;2)若需保留Date类型,需在Mapper中指定StringTypeHandler;3)最佳实践是保留原始DateTime字段,在Java代码中进行格式化处理。
2025-09-20 09:20:18
445
原创 MySQL本地安装步骤
在打开的编辑窗口中,点击“新建”并添加MySQL的bin目录路径(例如C:\mysql\bin),然后点击“确定”保存更改。如果你只是想临时启动MySQL服务,可以在bin目录下执行mysqld命令,但这需要你的命令提示符窗口保持打开状态。成功登录后,你可以看到MySQL的命令提示符(如mysql>),这表示MySQL已经成功安装并可以开始使用了。mysql -u root -p 连接进入mysql 输入用户密码 mysql -u root -p xxx。输入你在初始化数据库时生成的临时密码。
2024-09-26 11:53:57
989
原创 Java开发常用软件下载地址
https://maven.apache.org/download.cgihttps://www.jetbrains.com/idea/download/other.htmlhttps://git-scm.com/download/
2024-09-10 15:35:00
547
转载 什么是RESTful API?
要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST – REpresentational State Transfer,英语的直译就是“表现层状态转移”。如果看这个概念,估计没几个人能明白是什么意思。那下面就让我来用一句人话解释一下什么是RESTful:URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。Resource:资源,即数据。&n...
2020-09-22 00:33:16
199
转载 sql 要优化,sql很慢,那就看看这篇文章
之所以写这篇文章,是源于以前看过的关于sql语句优化的帖子,里面明确提到了在sql语句中不要使用 * 来做查询,就像下面的规则中说的 1 2 3 4 5 2、尽量避免使用select *,返回无用的字段会降低查询效率。如下: SELECT * FROM t 优化方式:使用具体的字段代替*,只返...
2019-12-05 17:36:02
430
原创 IDEA创建 Web项目 并发布到tomcat
IDEA创建 Web项目 并发布到tomcat一、直接上图吧,不多逼逼了二、选择你的项目三、四,起上你自己认为美美哒的项目名和项目地址,其他不用管了。五、点NEXT六、IDEA 找到了你項目中的jar包,并且问你要不修改这些jar 直接点next就可以了。八 、这里基本不要管了,点下一步。九、选择JDK十、到这基本上项目就导入进来了,接下来就是配置项目,发布到to...
2019-09-27 18:01:07
544
原创 windows 配置多个Tomcat
1 先到环境变量处配置两个tomcat变量,也就是要是使用的 tomcatCATALINA_HOME比如:F:\xxxCATALINA_BASE比如:F:\xxx把tomcat bin 目录下catalina.bat 文件里的 CATALINA_HOME 和CATALINA_BASE替换成配置的环境变量名把tomcat bin 目录下startup.bat文件里的 CATALINA_...
2019-09-23 11:40:20
214
原创 VMware虚拟机安装linux步骤
打开虚拟机,点击“创建新的虚拟机”,步骤如下:最后找到虚拟机设置里面。使用本地的linuxISO映射文件即可1,接下来进入虚拟机进行Linux安装即可,选择最小安装就是使用虚拟机的命令窗口操作2,如果IP地址为127.0.0.1的话就需要修改MAC地址END!!!1...
2019-08-29 01:25:43
257
转载 session什么时候被创建
一直以来javaweb伴随着web工程师,可是太多人忙于框架之上的CRUD,底层的一些基本原理忽略了。现在让我从session开始慢慢捡起来javaweb的基本原理吧。其中servlet和jsp都是默认内容。测试1:分别请求servlet和jsp,通过浏览器查看是否生成session。测试结果:请求servlet没有产生session,请求jsp产生了session。理论知识:jsp的本质...
2019-05-12 22:22:48
633
转载 WebSocket介绍和Socket的区别
目的:即时通讯,替代轮询网站上的即时通讯是很常见的,比如网页的QQ,聊天系统等。按照以往的技术能力通常是采用轮询、Comet技术解决。HTTP协议是非持久化的,单向的网络协议,在建立连接后只允许浏览器向服务器发出请求后,服务器才能返回相应的数据。当需要即时通讯时,通过轮询在特定的时间间隔(如1秒),由浏览器向服务器发送Request请求,然后将最新的数据返回给浏览器。这样的方法最明显的缺点就是...
2019-01-29 22:29:22
318
转载 linux 下操作nginx启动 重启 关闭命令
nginx -s reload :修改配置后重新加载生效nginx -s reopen :重新打开日志文件nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确启动操作 -c参数指定了要加载的nginx配置文件路径nginx -c /usr/local/nginx/conf/nginx.conf 停止操作nginx -s stop :快速停止n...
2019-01-17 11:22:17
603
转载 Windows下Nginx+Tomcat整合的安装与配置
Windows下Nginx+Tomcat整合的安装与配置原帖:http://zyjustin9.iteye.com/blog/2017394相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:Html代码反向代理(Re...
2019-01-14 15:42:35
595
转载 什么是缓存击穿?
缓存击穿、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本节讲解其产生原因和解决方案。缓存击穿通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪崩是由缓存同时失效造成的,三种问题都比较典型,也是难以防范和解决的。本节给出通用的解决方案,以供在缓存设计的过程中参考和使用。缓存击穿缓存击穿指的是使用不存在的key进行大量的高并发查询,这导致缓存无法命中,每次请求都要击穿...
2018-12-03 10:38:20
445
原创 如何复制copy别人的网站
**第一步 copy 网页代码:**1、打开一个网站,按F12,就是开发者工具啦!2、选择Elements3、右击网页元素,找到copy Elements【图1所示】就可以直接将代码获取到了,然后就尽情的蹂躏它吧。。。图1 ↑第二步 copy 样式代码1、点击 NetWork,参考【图2】2、找到对应的css 和js img等,复制到自己的本地目录【图2】图2 ↑第...
2018-11-05 11:44:20
37418
2
原创 maven 将maven本地仓库的jar安装maven 方法
maven 将maven本地仓库的jar安装maven 方法第一步打开dos第二步输入下面的命令mvn install:install-file -Dfile(maven 仓库地址)=E:\Source\maven\org\HslCommunication\HslCommunication\3.11\HslCommunication-3.11.jar -DgroupId=org.HslC...
2018-10-31 09:48:47
420
转载 pagehelper-分页失效
今天在尝试 使用pagehelper-spring-boot-starter进行分页测试时,发现无论我如何传参,返回到前台的数据都是数据的总记录,于是各种找解决方案,最后解决方案就是:#pagehelper.dialect=com.github.pagehelper.dialect.helper.MySqlDialect在pagehelper-spring-boot-starter的githu...
2018-09-26 10:00:03
1986
原创 Java问题笔记
java 基础问题记录 1、equals方法public static void main(String[] args) {// 错误代码 String str=null; if (str.equals("")) { System.out.println("1"); }因为equals 不能
2018-09-13 15:29:10
207
转载 为什么要前后端分离
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想:前端html页面通过ajax调用后端的restuful api接...
2018-09-07 14:43:46
300
转载 进程丶线程丶CPU关系简述
本文简单阐述了进程与线程的关系,为了便于理解,本文也将简述CPU的工作原理。进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。或者说进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程则是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位...
2018-09-03 15:27:48
270
原创 什么是springBoot 它和springCloud的关系
Spring Boot,看名字就知道是Spring的引导,就是用于启动Spring的,使得Spring的学习和使用变得快速无痛。不仅适合替换原有的工程结构,更适合微服务开发。Spring Cloud基于Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。学过Spring的都知道,Sprin...
2018-09-03 08:56:03
960
转载 Redis是什么?
1. 什么是Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。 2...
2018-09-03 08:43:18
228
转载 @RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别
1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法,此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。 列如@...
2018-08-31 16:46:24
192
原创 关于web项目启动报404的几种原因
原因一 没将项目部署到Tomcat中 原因二 没指定项目到tomcat的webApp目录下 原因三 比如你页面放在了webApp下面的一个自创的文件夹下面,所以会找不到改页面 以上是我自己总结的一些会碰到404(找不到主页面)错误的几种原因,如有不对,还请大家指正!...
2018-08-29 23:13:56
32303
2
转载 字节,字符的理解
(一)“字节”的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。(二)“字符”的定义 字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。(三)“字节”与“字符” 它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同: ①ASCII码...
2018-08-29 09:54:22
411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅