- 博客(123)
- 收藏
- 关注
原创 后端id类型为long类型时,返回给前端浏览器四舍五入,导致id精度缺失问题
今天在代码里,掉了别人写的接口,有个id的字段是long类型的,我这边加点参数返回给前端,然后前端根据id修改,结果修改的数据记录有,但是没起作用,后来发现根据他传给我的id在后台数据库查不到数据,然后发现,在浏览器控制台中后端响应的数据和前端预览的数据不一致,如下图。
2025-04-29 16:37:05
414
原创 wait 和notify ,notifyAll,sleep
操作系统会将CPU分配给其他就绪线程,但当前线程依然存在,不会释放其占用的内存或其他资源。当调用Thread.sleep(milliseconds)时,当前线程会从“运行状态(RUNNABLE)”进入“计时等待状态(TIMED_WAITING)”。线程并没有被销毁,只是暂时停止执行,等待指定时间后重新进入就绪队列,等待CPU调度。两个线程同时开始抢锁,如果是奇数线程抢到了锁,奇数线程判断当前是不是奇数,偶数线程判断当前是不是偶数。使线程进入阻塞状态,释放CPU,以及锁。使线程进入睡眠状态,sleep方法。
2025-04-10 23:09:23
470
原创 springboot创建bean通过构造方法(只有一个构造方法的情况下)注入其他bean(参数)
spring容器本身在创建bean的时候,会自动从容器中查找 参数 类型的 bean,并将其注入到构造方法中。
2024-10-09 15:39:08
432
原创 springboot中@EnableConfigurationProperties注解
EnableConfigurationProperties注解用于显式地启用对@ConfigurationProperties注解类的支持。它告诉Spring Boot框架,在应用程序中存在使用@ConfigurationProperties注解的类,需要自动加载并绑定配置文件(如application.properties或application.yml)中的属性到这些类的字段上。
2024-10-09 14:52:12
787
原创 springboot中@ConfigurationProperties注解的用法
ConfigurationProperties注解在Spring Boot框架中提供了一种将外部配置(如application.properties或application.yml文件中的属性)绑定到Java对象的便捷方式。以下是@ConfigurationProperties注解的详细用法创建一个普通的Java类,并使用@ConfigurationProperties注解来指定配置文件中属性的前缀。类中的字段需要与配置文件中的属性名称相匹配(考虑驼峰命名和下划线的转换)。@Component。
2024-10-09 11:12:09
842
原创 SpringBoot @ConditionalOnProperty注解
matchIfMissing = true: 指定如果属性 myapp.feature.enabled 不存在,条件也应该匹配(即自动启用这个功能)。name = “myapp.feature.enabled”: 指定要检查的属性名是 myapp.feature.enabled。havingValue = “true”: 指定只有当属性值为 true 时,条件才匹配。
2024-10-09 10:39:33
361
原创 springboot控制上传文件大小
日积月累的总结,需要注意的是这是springboot的配置,针对的是springboot本身接收文件的规则。实际上我们一般都只这样配置就好了。
2024-10-09 10:01:27
1278
原创 Nginx中,413 Request Entity Too Large错误
在Nginx中,413 Request Entity Too Large错误通常发生在尝试上传或发送超过Nginx配置文件中的client_max_body_size限制的文件时。这个错误意味着请求的正文大小超过了Nginx允许的最大值。解决这个问题的方法是在Nginx配置文件中增加client_max_body_size的值。你可以在http、server或location块中设置这个值,我这里给出了60MB的大小。
2024-10-09 09:50:01
1156
1
原创 SQL之case when then用法
简单类型case sexwhen '1' then '男'when '2' then '女’else '其他' end搜索类型SELECTname,salary,CASEFROMemployees;CASE 语句是顺序敏感的,即它会从上到下评估 WHEN 子句,一旦找到第一个为真的条件,就会返回相应的结果,并忽略后面的所有条件。ELSE 子句是可选的。如果没有任何 WHEN 条件为真,并且没有提供 ELSE 子句,那么 CASE 表达式的结果将是 NULL。
2024-10-09 09:43:29
1084
原创 MyBatis<foreach>标签的用法与实践
demo1简单的一个批量更新,这里传入了一个List类型的集合作为参数,拼接到 in 的后面 ,来实现一个简单的批量更新</</collection=“allVisible”,allVisible代表传入的集合item=“visible” ,visible代表集合的每一个元素open=“(” 代表以( 开头separator=“,” 代表以“,”分隔,close=“)” 代表以“)”结束本质上这里是个拼接,所有要保证这里list不为空,不然会报错demo2。
2024-09-26 14:37:21
828
原创 springboot中@bean注解的创建和使用
在@bean注解中有个name参数,根据描述我们可以看出name值就是这个bean的名称,其中If left unspecified, the name of the bean is the name of the annotated method,表示如果没有指定,那这个bean的名称就是@Bean注解所注释的方法的名称,所以上面两个bean的名称分别是masterDataSource 和 slaveDataSource。首先这个注解在方法上使用,也可以在注解使用,这里只介绍在方法上使用的情况。
2024-07-09 22:48:51
1544
原创 nginx配置https协议(测试环境)
首先申请证书这一步,晚上有很多种方式实现,可以自己用算法实现,也可以找在线生成的网站,我这里使用了在线网站。这里我们主要用cert.pem和 private.key 这两个文件。
2024-06-13 13:48:34
312
1
原创 @Autowired , @Resource,Component,@Service,@Repository 和,@Controller,Configuration,@Bean它们的区别
Component、@Service、@Repository 和 @Controller:这些注解用于定义 Spring 容器管理的 Bean。例如,如果你有一个配置类,它包含多个 @Bean 方法用于创建和配置 Bean,那么你需要使用 @Configuration 注解来标记这个类。但是,它们并不定义 Bean 本身,而是用于处理 Bean 之间的依赖关系。尽管这些注解在某些方面有所重叠(例如,它们都与 Spring 容器的 Bean 管理有关),但它们各自有特定的用途和适用场景。
2024-03-28 23:03:13
446
原创 docker网络
在这里插入图片描述](https://img-blog.csdnimg.cn/direct/33bdbe303f014dd49f821b4348226960.pn。这里看下我之前的一个网络,Containers这个里面是可以看到这个网络里有哪些容器。可以看到网络的网段,网关。可以看到已经创建成功了。
2024-03-28 22:50:15
395
原创 docker构建镜像命令
这样,java 是命令,-jar 和 5gSports-app.jar 是传递给 java 命令的参数,–spring.config.location=classpath:/product.yml 也是另一个参数。每个参数都作为一个独立的数组元素。ENTRYPOINT 指令应该是一个 JSON 数组,其中每个元素都是一个独立的字符串,而不是一个包含整个命令和参数的单一字符串。正确的方式是将命令和每个参数分开成数组中的不同元素。基于jdk11镜像构建新的镜像。
2024-03-21 17:34:56
777
转载 springboot处理请求的过程
当通过之后,会执行接下来的过滤器中的过滤行为,假如没有过滤器了,就会进入DispatchServlet中的doService方法。到达Servlet,进入DispatchServlet中的doService方法。执行preHandle方法,这里要执行具体的过滤行为。进入拦截器中的preHandle方法。
2024-03-07 11:19:56
193
原创 MySQL中的describe关键字
检查代码后,认为代码正常,并且字段编写正确,类型也正确,怀疑是数据库这边的问题,发现describe是mysql的一个关键字,不能够作为普通字段使用,改为description后,可正常插入。新建mysql表中需要一个描述的字段,本人就是用的describe,结果mybatis插入报错,去掉这个字段后结果正常。
2024-02-27 11:03:24
769
原创 docker镜像打包和解压
在部署或者迁移的时候会很方便,当有多个镜像可以写成脚本。这样解压下来的实际就是app-web:2.0这个镜像。docker load
2024-02-21 13:57:54
1298
1
原创 nginx去掉前端配置的路径前缀
这样访问的/prod-api/test/1 实际就会变成 http://193.1.0.6:10004/test/1,就像是springmvc的静态资源映射一样的。在前端项目部署到nginx的时候,前端访问后端的路径加了一个全局前缀,一般来说这是前后端商量好的,但是呢也会有不一般的情况,后端在遇到这种情况的时候有两种选择。第二种方式,直接prod-api 后加个斜杠,同时在端口后面也加个斜杠,这样实际请求的路径就去掉了/prod-api。第一种方式,这样的结果是你后端项目同样需要加上prod-api。
2024-02-01 17:27:25
1758
2
原创 mybatis之@Table和@Column注解
假如mybatis开启了驼峰规则,mybatis在获得查询结果的时候,会把每个列中带下划线的首字母转成代写,如数据库的字段是user_name,那么mybatis会将user_name变为userName,然后和实体类中的名为userName的属性进行映射,此时如果你的实体类属性userame写着@Column(name = “user_ame” ),这样你的实体类属性userame是获取不到值的。
2024-01-31 17:35:16
1975
原创 mybatis的@Transient注解
需要注意的是,@Transient注解是MyBatis与数据库操作无关的注解,它是由Java EE规范提供的javax.persistence包定义的注解之一,所以它的使用不仅限于MyBatis框架。MyBatis的@Transient注解是用来标记实体类中不需要持久化到数据库的字段,它会告诉MyBatis不需要将该字段映射为数据库表的列。总结来说,@Transient注解用来标记不希望持久化到数据库的字段,而不仅仅是针对有@Table注解的属性。
2024-01-31 15:30:53
2342
原创 mybatis一对多查询,list中的泛型是包装类
假如有两个实体类,用户和角色,其中用户可以有多个实体类,要使用到association标签。例子1:一对多查询用户的角色id的 list,对应List sysRoleIds属性。例子1:一对多查询用户的角色,,对应用户中的List sysRoles属性。可以看到用户实体类中分别有这两个属性。
2024-01-31 15:09:59
921
原创 jwt的了解和使用以及大致代码分析
以下介绍来自官网(https://jwt.io/)SON Web 令牌 (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。JWT 可以使用密钥(使用 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名**(来自官网)**。尽管 JWT 可以加密以提供各方之间的保密性,但我们将专注于签名令牌。
2023-10-11 16:20:17
310
原创 二进制中左移、右移、无符号右移规则
这里例子都采用的32进制,int类型占32位,具体结果要看系统中int占位,**** 代表很多个1或者0,具体要看它前面是1还是0。这里例子都采用的32进制,int类型占32位,具体结果要看系统中int占位,**** 代表很多个1或者0,具体要看它前面是1还是0。对于正数而言,有符号右移和无符号右移都是一样,左侧都补的是0,与符号位相同。但是对于负数而言,有符号右移和无符号右移是不一样的。这里首先看正数的左移。
2023-10-09 18:36:43
4549
1
原创 nginx生产环境demo(六)
以为实际情况下一个nginx.conf下可能会有多个server模块,监听不同的端口,为了避免发生一些错误的修改,所谓我们这里给每个server都单独建立一个后缀为.conf的配置文件,然后导入总配置文件的http模块中。这里用到了 include这个命令,导入其他的配置文件。,这个配置文件是放在nginx目录下的那个。
2023-10-08 14:20:20
174
原创 nginx高可用配置(五)
使用两台服务器,ip分别为192.168.2.150 ,192.168.2.202,分别安装nginx和keepalived,在这里我们使用150作为主服务器,使用202作为备用服务器,虚拟ip为192.168.2.130,不论主服务器还是备服务器都需要编写keepalived的配置文件 ,keepalived.conf。的nginx和keepalived.conf,然后启动依次启动主备服务器的nginx和keepalived服务。5.ll命令查看,会有个配置文件 keepalived.conf。
2023-10-08 14:02:16
1070
2
原创 nginx动态分离(四)
动静分离把静态文件放入nginx或者说服务器的某个文件夹,这里把文件放入服务器的根目录下/data ,创建一个test目录,这样就直接访问到test目录下的静态文件 [121.4.170.108/test/b.html]
2023-10-08 10:44:51
133
原创 nginx实现负载均衡(三)
使用upstream开头定义一个名为名为 backend 的 upstream 指令域 ,默认使用的轮询,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响。Weight 指定轮询权值,Weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。默认的weight值是1demo01定义的位置是在http的全局块中,这里定义了一个名为backend的负载均衡配置demo02。
2023-10-07 17:18:12
715
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人