2024-03学习笔记

1.返回给前端损失了.0 或者.00

转成字符串返回

JsonFormat(shape = JsonFormat.Shape.STRING)

2.starter

每一个 stater 都在扮演着提供我们所需的 Spring 特性的一站式商店角色。其他所需的依赖以一致的方式注入并且被管理。

冲突什么的 在starter中已经解决好了  不用管 引入进来就可以用了

写starter就设计到spi 需要写spring.factories

3.SPI

Springboot,通过 SPI加载配置文件的方式,把类加载到 spring 容器完成实例化

加载外部文件

导入得starter的包,一般都有自己的路径命名方式,不在当前项目的默认扫描路径下。

为了能方便使用者读到,都会配置spring.factories

利用springboot的自动配置 

4.@Condition

 

5.@Import 

@Import一个普通类 spring会将该类加载到spring容器中

我的理解:这个实体类本来不是一个被spring管理的bean,但是通过@import后,就是一个可以注入的bean

导入普通类:如果@Import的参数是普通类,则Spring会将该类实例化为一个Bean,并注册到容器中。

这种方式的使用场景是配置类无法被直接扫描到。

 还有个注解,@ImportResource注解用于导入Spring的配置文件,让配置文件里面的内容生效。以前用过它导入xml文件

6.@DS实现多数据源

这篇博客看起来挺靠谱的

SpringBoot使用@DS配置 多数据源 【mybatisplus druid datasource mysql】_springboot配置双数据源 @ds-CSDN博客

不指定@DS的情况下,默认用主数据库

而且,也可以用jdbctemplate来切换多数据源,只要把@ds放到方法上就好,这时候方法内部查数据库的,走的都是@ds指定的那个数据源

 7.代码优化注意点

1.能用基本类型就不要用它的封装类

2. 不要创建不必要的对象

避免无意中创建的对象,如自动装箱long->Long

3.组合胜过继承

 4.可变参数要注意空

5.工具类中,集合型的不要返回Null

不然调用你方法的人还要自己判断一下空指针

6.log.error(str,throwable) 代替e.printStackTrace

 7.用枚举代替常量

如图,枚举类里可以写一些方法

8.局部变量作用域最小化 

在第一次使用的地方进行声明(虚拟机械一局部变量表 solt 槽)

局部变量都是要自行初始化,如果初始化的条件不满足,不要声明。

好处:减少局部变量表的关提高性能,避免局部变量过早使用导致的一些代码编写错误

9.精确计算,避免使用foat 和 double

 Float 和 double在 JVM存储的时候,小数点,部分需要整数,有部分存储小数。所以精度有问题。要么用 int 或 long,BigDecimal

10.当心字符串连接的性能

“ 1111”+” time”+"asdasd”

如果要大量字符串拼接,SuingBufier,stingBuilder..

8.springboot内置tomat在哪

 9.类加载器和双亲委派

类加载,把那些二进制字节码通过类加载器,加载到内存中,变成对象

双亲委派,那是为了防止破坏核心包,碰到个类就先问自己爹行不行,说不行,儿子才上

 10.nginx

1.位置

外部访问--nginx--前端---springcloudgateway--转发到后端不同的服务

2. 惊群

惊群就是不排队,一有消息就通知所有人,疯抢

3.export和source要一起使用

export可以增加/修改 环境变量,source一下这个文件,就生效了

4.访问某个地址,不带端口号,默认就是80

5.监听路径相似时,会被匹配最长的拦下

 6.正则匹配

正则覆盖

 防止正则覆盖

7.nginx路径匹配流程

11.redis 

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值