自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 20230630 为什么idea里使用@Autowired会出现警告

第一个:容器和类的耦合度过高了。就是@Autowired注解是取ioc容器中获取对象,然后进行注入。比如测试用例的时候。可能会产生循环依赖。但是用的时候就有问题。型的变量在调用class的构造函数的这个过程当中就得初始化完成。idea中使@Autowired进行依赖注入时会标黄线。set方法注入类似选择性注入。可以选择几个对象进行注入。但是问题的根源是spring不建议使用成员变量注入。构造器注入注入的内容太多的话不建议使用。3:final static修饰的对象不能注入。构造器注入,set方法注入。

2023-07-01 00:25:41 1063

原创 20230625spring boot+spring cloud整合nacos

我用的版本是jdk1.8 spring boot 2.2.5.RELEASE spring cloud Hoxton.SR3。或者不修改配置的话。进入文件夹用命令打开:startup.cmd -m standalone也可以。修改一下startup.cmd里的默认启动配置。(默认是集群,修改为单体)双击打开。spring boot3.0以上好像还不支持。如果发现服务启动成功,但是注册不进nacos。最容易出错的地方就是版本号。pom文件如下:父项目文件。先下载nacos服务端。以上服务端启动完成。

2023-06-25 11:51:46 271

原创 20230620spring cloud 大体认识

其他服务注册进去的流程和Eureka差不多。服务之间通信使用的。意思是发起请求之后进入ribbon然后去Eureka拉取对应的服务列表(有可能是集群多个相同的服务),然后通过IRule规则接口判断使用那种方式进行负载均衡。所有进入集群或者服务的请求都会经过网关。网关有个断言的功能。主要功能就是注册服务和服务拉取的。在一个服务中调用其他服务时,首先要保证调用的服务注册进入了Eureka.然后调用这个服务时就会进入Eureka拉取此服务。服务和服务之间的通信就是用它。当前的理解是:各种框架的整合。

2023-06-20 10:50:19 110 1

原创 20230616双亲委派模型

Appclassloader加载类是。意思就是先看看上边的加载器里的缓存里 有没有。如果有就不用加载了。如果到了最上层发现缓存里没有。意思就是从最上层的加载器BootStrapClassLoader开始查找按加载路径查找。BootStrapClassLoader:最上层的。加载jdk的工具包。加载路径时%JAVA_HOME%下的lib包。ExtClassLoadet:加载扩展包。好处是安全性,避免用户自己写一下的类替换掉了java自己的核心类。AppClassLoader:加载项目里的包和自己写的类。

2023-06-16 10:49:33 91 1

原创 20230616重写hashcode和equals方法

hashcode()和equals()方法都是object的方法。new两个user对象u1和u2,内容完全一样,但是在堆里存储的地址肯定不一样。所以如果不重写hashcode()和equals()的时候肯定就只能当2个key类使用,但是他们的内容一样,有可能业务上认为是一个。然后hashcode()就不能返回u1或者u2对象的code了。这样u1的用户id和u2的用户id返回的code肯定就一样了。string已经重写好了equals方法和hashcode方法了。注意:分清楚是object的方法要重写。

2023-06-16 10:24:16 63 1

原创 20230615mybitis 缓存理解

二级缓存:sqlSessionFactory 工厂级别的缓存。是贯穿在sqlSession里的。配置文件里setting里有个cache-enabled:true。然后再mapping.xml里加上<cache />这个mapping里的所有sql就都走二级索引了。不想走的就配置一个useCache=false。一级缓存:sqlSession会话级别的缓存。内部是一个hashmap将数据放在内存里边。key是hashcode+sqlid+sql语句。执行顺序是:先走二级缓存。然后一级缓存,然后数据库。

2023-06-15 17:42:00 64 1

原创 20230615redis持久化,内存淘汰,过期删除

往这个文件中写入执行的命令。随机淘汰:随便选这淘汰。redis的淘汰机制是有过期时间的LRU,LFU,TTL,随机淘汰。没有过期时间的LRU,LFU,TTL,随机淘汰。混合持久化模式:先进行rdb把现有的数据压缩近dump.rdb文件。然后AOF把之后的每个命令追加到文件中。LRU:长时间不使用的淘汰 LFU:访问次数少的淘汰 TTL:设置了过期时间的先淘汰。过期删除:惰性删除:再次使用时删除。定时删除:创建定时器然后去删除。创建子线程将数据以二进制的方式写入dump.rdb文件。

2023-06-15 10:22:12 119 1

原创 20230614记录redis并发问题,缓存穿透,缓存击穿,缓存雪崩

我们没有,然后又查商品2等等的。有可能在第一个线程读取数据库将数据放入到缓存中的这个时间点。就到这后来的这些线程查询到这条数据在缓存里没有。缓存击穿(缓存失效):批量导入商品时,可能会设置相同失效时间。这就可能会造成到达失效时间之后一大批商品的缓存同时失效了。解决方法:批量导入的时候过期时间别写一样的去随机加1-10个小时。RReadWriteLock.readLock(“key写在需要加锁的某一条条数据上比如商品id”)读锁。读取某个商品时不会影响其他商品的读取。单纯的读取数据是没有并发问题的。

2023-06-14 19:10:28 67

原创 springboot整合ssm时java.sql.SQLException: Access denied for user ‘电脑名‘@‘localhost‘ (using password: YES

name是数据库名称,username是登录用户名。name可以不写在url中拼上。我把name和username弄混了。也有人把name写成了data-name.基本都是配置写错了。

2023-06-13 17:33:11 126 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除