知识点汇总

2024-10-09 11:11:59 浏览数 (1)

1.类名重复了:项目和子模块中存在类名相同的java类,启动项目的时候会报错。

Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'MyPurchaseService' for bean class

com.mytest.service.impl.MyPurchaseService conflicts with existing,

non-compatible bean definition of same name and class com.autoyol.insurance.service.pingan.MyPurchaseService

2.idea创建gradle多模块使用方法,配置文件,扫描包

https://cloud.tencent.com/developer/article/2455703

https://cloud.tencent.com/developer/article/2455762

3.idea连接数据库,也可以生成代码

4.数据库的E-R图 实体关系图 mysql workbench

5.多数据库源的配置

Not loading a JDBC driver as driverClassName property is null. 解决,数据源的apollo配置。

spring.datasource.driver-class-name = com.mysql.jdbc.Driver

spring.datasource.mydatasourceTwo.driver-class-name = com.mysql.jdbc.Driver

6.子模块中运行没有找到配置文件,是因为缺少了Apollo配置。

7.数据库底层 操作日志表

扩展:对注解符号 io.swagger.annotations.ApiOperation 进行拦截,添加数据库日志。

8.token登录接口开发,postman测试 jwt(去掉~~) 赋值给公共的对象中来获取 当前的登录账号信息,引入redis

9.订单的定时任务,订单状态的流转 未支付/进行中/已完成

10.订单号规则,不能重复。redis去重

11.GlobalRequestExceptionHandler 全局异常类 it

LocalBusinessException 本地该异常类改名称了。 与BusinessException类同名,存在歧义。导致捕获的时候,需要根据Exception实际的classpath的类捕获。

拦截全局的异常信息 GlobalExceptionAdvisor 避免异常信息

12.分页的插件,jar版本的区别。注意gradle jar版本的区别

13.OpenFeign调用远程服务时用GetMapping调用接口时传参用@RequestBody注解 >> 导致yapi没有生成请求参数。 去掉@RequestBody解决

Get请求参数使用?a=1&b=2 接收参数可以使用对象来接收,不用注解@RequestBody 请求参数不能用Body json串的方式来传递。

代码语言:txt复制
	14.<T>指定类型,否则会报以下错误:2024-01-03 11:28:59.464 [http-nio-1278-exec-4] [8d5d894dc1f69be8,8d5d894dc1f69be8] ERROR c.a.c.d.c.ScooterOrderController#submitInsureOrderCommon

15.ecodeException: JSON parse error: Can not deserialize instance of java.time.LocalDateTime out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.time.LocalDateTime out of START_ARRAY token

at Source: java.io.PushbackInputStream@869d612; line: 1, column: 559

加上jar compile ("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")

16.mysql数据库字段扩容

ALTER TABLE auth_code MODIFY COLUMN ticket_code VARCHAR(50) DEFAULT NULL COMMENT '券码ID';

17.查看依赖

D:gitversion2myManageService-service>gradle dependencies >> 1112.txt

排除依赖

项目:myManageService

代码语言:txt复制
compile('com.mytest.xxljob:xxljob-starter:2.0.1-SNAPSHOT'){
代码语言:txt复制
	exclude module: 'xxl-job-core'
代码语言:txt复制
}
代码语言:txt复制
compile('com.xuxueli:xxl-job-core:2.0.1-SNAPSHOT'){
代码语言:txt复制
	exclude module: 'jetty-server'
代码语言:txt复制
}

18.mysql bigint java用什么存储。 使用long或者BigInteger

19.

@RequestMapping(path = {"/test","/public/test"}) //请求地址支持多路径,字符串数组

20.模糊查询在表数据量很大的时候会导致表的查询速度很慢,会导致崩溃。

payTrans_Id LIKE CONCAT(CONCAT('%',#{payTransId}))

payTrans_Id = #{payTransId}

21.idea的配置文件:gradle/wapper/gradle-wrapper.properties

//distributionUrl=https://services.gradle.org/distributions/gradle-3.5-bin.zip

distributionUrl=https://services.gradle.org/distributions/gradle-4.10.3-bin.zip

22.fat1测试环境启动报错:

1.Failed to instantiate org.redisson.api.RedissonClient: Factory method 'redissonClient' threw excep

代码语言:txt复制
compile('org.redisson:redisson:3.5.0')
代码语言:txt复制
compile("io.netty:netty-all:4.1.13.Final")  缺少了这个依赖,需要对队出现

2.过滤文件 /out 过滤目录 idea中可以删除

3.本地idea clean 或者重新刷新编译

23.uuid创建

UUID.randomUUID().toString().replace("-", "");

24.支付退款金额按double存储,可以支持小数点

25.mybatis添加返回ID

keyColumn="id" keyProperty="id" useGeneratedKeys="true"

useGeneratedKeys="true" keyProperty="id"

25.Linux文件搜索

1.关键字“或”的搜索, -E 不能少。

grep -E "word1|word2|word3" file.txt

满足任意条件(word1、word2和word3之一)将匹配。

2.关键字“且”的搜索

grep word1 file.txt | grep word2 |grep word3

必须同时满足三个条件(word1、word2和word3)才匹配。

https://www.cnblogs.com/oktokeep/p/17918988.html

26.常量类

NumberUtils.INTEGER_ZERO

NumberUtils.INTEGER_ONE

常量可以统一都写到 Constants.java

代码中尽量避免魔法数字,

或者使用 NumberUtils.INTEGER_ZERO:0

NumberUtils.INTEGER_ONE:1

27.退款和退保幂等接口处理

//退保成功后,无需重复发起退保操作 幂等/异步操作

28.请求头 Authorization:123456789 //默认token:123456789模拟跳过,方法在接口测试的时候,可以跳过登录接口获取的token

29.二维码扫码支付测试,可以通过接口测试,qr码通过草料生成二维码,然后扫码支付,支付消息通过mq发送,可以模拟rabbitmq通过客户端来发送,

这样可以一次支付,多次通过rabbitmq来测试。使支付成功后的流程走顺。

30.角色,权限这套可以简化,比如:董事长,部门经理,员工。所以在最底层的员工表中,添加角色,权限的字段来控制。

因为董事长,部门经理本质上仍然是员工。所以在员工表中统一存储。如果涉及到登录账号的账号,密码。也可以在员工表中来存储。

0 人点赞