问题汇总----blog

1. 在VSCode中搭建Vue项目

查看package.json文件可以看到应使用的命令。通常可以删除node_moudles文件再用npm-i解决问题

npm常用命令
npm init
npm init -y  可以跳过向导,快速生成
npm install以一次性把dependencies选项中的依赖项全部安装,简写:npm i
npm insatll 包名,简写:npm i
npm install --save,简写:npm i -S
npm uninstall 包名,简写:npm un 包名(只删除包,package.json中依然保留信息)
npm uninstall --save 包名,简写:npm un -S 包名(删除包的同时会把依赖信息也删掉)
npm help,查看使用帮助
npm 命令 --help,查看指定命令的使用帮助,比如去查uninstall的简写:npm uninstall --help

2.SpringBoot项目中Mapper注入为空

需要在配置类或者主程序上加MapperScan扫描Mapper文件

3.SpringBoot项目中测试类注入为空

需要在测试类上加SpringBootTest(classes = ********)

4.dos存放数据库查询出的数据,但不需要持久化的

5.Redis Desktop Manager连接腾讯云轻量服务器

  • 将bind 改为0.0.0.0
  • 修改密码 requirepass ******
  • 更改启动方式 daemonize yes
  • 服务器防火墙添加6379端口

6.default

default方法只有public修饰,必须由接口的实现类来调用。
作用
之所以引入 default ,主要是为了接口的升级。在以往开发中,接口只要增加了方法,所有实现类必须实现该方法,否则编译不通过。而default修饰的接口方法,实现类可以不做任何实现,默认调用接口的default方法

7.long类型的id属性传到前端会精度丢失的解决方案

JSON字符串转JS对象,JSON中的数字会转为 number 类型, number 类型的精度是16位,但是雪花算法生成的id长度有19位,so后面的几位精度就丢失了。如果想要前端不丢失精度,JSON中的id就不能是long类型,改为String类型就好了。

问题找到了,但要怎么解决呢。一种方案是修改实体类中id的类型,将id改为String类型,并且将表的主键也改为varchar类型。但是字符串查询性能比数字差,所以这种方案不太推荐。

好在Jackson已经为我了提供了三种方案
一种是直接在实体类的id属性上面加上注解 @JsonSerialize(using = ToStringSerializer.class)
这样一来,在后端依然是 long 类型,当实体类序列化成JSON的时候,在JSON中这个属性就会变成string类型。

上面这种办法有个缺点就是,如果有很多的实体类的id都是 long 类型,那就得给每一个都加上注解,这样未免有些麻烦。下面这个方法通过添加一个全局配置来使long类型转为JSON中的string类型,省去了一个一个添加注解的麻烦

@Configuration
public class JacksonConfig {
  @Bean
  @Primary
  @ConditionalOnMissingBean(ObjectMapper.class)
  public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
  {
    ObjectMapper objectMapper = builder.createXmlMapper(false).build();
    // 全局配置序列化返回 JSON 处理
    SimpleModule simpleModule = new SimpleModule();
    //JSON Long ==> String
    simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
    objectMapper.registerModule(simpleModule);
    return objectMapper;
  }
}



第三种办法是在application.yml中加上以下配置,这个办法会将所有数字都变成字符串,包括long 和int 类型

spring:
  jackson:
    generator:
      writeNumbersAsStrings: true



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值