- 博客(22)
- 收藏
- 关注

原创 什么是循环依赖,Spring是如何解决的,为什么要使用三级缓存来解决,二级缓存不能吗
关于源码好多文章都写了源码,而且源码还是要看视频学着去看才可能看的懂,这里就不贴了,主要是简介明了的说一下循环依赖以及Spring中是如何解决的。什么是循环依赖大家了解过套娃没,挺类似的,不过这个是A套B,B又套A,死循环了,所以就有了循环依赖的问题。在创建A的时候发现A中的属性需要B对象,那就先去创建B对象,又发现B中的属性需要A对象,那又去创建A,形成死循环,这就是循环依赖。在了解Spring解决循环依赖问题之前,需要了解注入属性的方式、Spring中的三级缓存、bean的创建过程。关于注入属
2020-08-14 17:05:44
5226
19

原创 Sychronized底层原理及特性详解
特性原子性 原子性就是一个操作或者多个操作要么一起执行,要么不执行。比如i++就是不具备原子性,它是先取出i的数据再进行加1,那这个过程在多线程中可能会出现脏读的情况。(Volatile与Sychronized的最大区别就是不具备原子性)可见性 Sychronzied被加锁对象的锁对于每个线程都是可见的,都能获取到锁的状态,在释放锁之前,会把最新的值更新到主存,保证值都是最新状态。 Volatile修饰的变量,每当值要改变时,都会立即更新到主存中,主存的内容对于其他线程都是可见的,就能保证值
2020-05-30 09:50:39
1260

原创 HashCode跟地址值的关系
关于底层很详细的解析,总结来说就是跟地址可能有关系,要看设置的是什么hashCode模式,JDK8是默认按照下面的方式进行的,C++源码如下 // Marsaglia's xor-shift scheme with thread-specific state // This is probably the best overall implementation -- we'll // likely make this the default in future releases.
2020-05-17 23:50:34
1660
原创 记录多线程下的几个问题排查记录
一、SimpleDateFormat这个类的方法是线程不安全的,当初写的时候忘记了,报错发现每次报错输入的字符串内容都不一样,就知道了这个问题,有几个方法可以解决:1.每一个方法都new,缺点就是占用内存了2.使用本地线程副本ThreadLocal,如下:private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>() { @Override protect
2021-03-09 18:11:00
351
原创 Maven打包第三方jar包的问题
最近项目中使用了钉钉通知功能,钉钉这个包是第三方包,只能直接加入,在本地时只需要添加以下信息即可 <dependency> <groupId>com.dingtalk</groupId> <artifactId>top-auto-sdk</artifactId> <version>1.0</version> <
2020-12-29 13:53:29
387
原创 SpringBoot自动配置原理-通俗易懂
SpringBoot自动配置原理和手写starter-通俗易懂自动配置原理1.主程序的 @SpringBootApplication进入,这个注解包含了一个重要的注解 @EnableAutoConfiguration。2.@EnableAutoConfiguration包含了一个 @Import注解,并且会加载AutoConfigurationImportSelector类。3.其中的selectImports()方法通过SpringFactoriesLoader.loadFactoryNames
2020-08-16 16:27:13
530
原创 SpringBoot整合(ES)ElasticSearch7.8
SpringBoot整合ElasticSearch7.6所有的教程都参考于官方文档,这里给大家说明文档位置,搜索elasticsearch官网的Docs界面,找到ElasticSearch Client这个选项,图中也有位置,根据图中的位置找就行了。添加依赖根据官方文档导入对应架包<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticse
2020-08-06 16:00:02
6651
12
原创 SpringBoot整合Swagger无法访问swagger-ui.html的问题
在整合Swagger时访问默认的路径:http://localhost:8080/swagger-ui.html,出现404问题,根据查看,发现是相关资源被拦截了,于是配置下就好了@Configurationpublic class WebConfig implements WebMvcConfigurer { /** * 解决swagger被拦截的问题 * @param registry */ @Override public void addR
2020-07-30 13:00:13
13769
3
原创 SpringBoot整合Quartz任务调度框架的使用
SpringBoot整合Quartz任务调度框架的使用Quartz框架是一个可以执行定时任务的框架,虽然spring也有提供定时功能,但功能不够强大,使用的不是很多。所谓的任务调度其实就是定时器,跟你设定一个闹钟在什么时间做什么事情一样。在我们的业务中,经常使用来做订单的超时判断,比如你下订单成功后30分钟没支付就会显示订单失效,这就是使用了定时功能去检查订单的时间。Demo使用基本步骤使用Quartz的三大步骤:1)Job - 任务:你要做什么事2)Trigger - 触发器 - 你什么时候去
2020-07-28 15:10:58
694
2
原创 使用rabbitmq模拟秒杀,进行流量削峰
github地址:https://github.com/wangshili123/-rabbitmq-demo.git
2020-07-27 09:59:51
1301
原创 使用redis实现秒杀demo
项目git地址:https://gitee.com/wangshili123/rabbitmq_miaosha_demo.git忽视地址名,起错名字导致地址是rabbitmq的。。。
2020-07-27 09:56:19
208
原创 SpringBoot整合Dubbo+ZK注册失败的坑
1.先看下公共的pom(maven创建的pom工程)以下必须加 <dependencies> <!--springBoot动态的引入springMVC全部的配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependenc
2020-07-16 23:22:07
2889
原创 SpringBoot+Redis解决Nginx的session共享问题
SpringBoot+Redis解决Ngnix的session共享问题前提是实现了redis功能下进行增加1.增加redis的session包<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId></dependency>2.在propertie
2020-07-08 00:05:58
219
原创 使用Jquert的treeGrid插件一直显示无记录问题
现象:我前端的代码:/** * 初始化表格的列 */ var columns = [ { field : 'selectItem', radio : true }, { title : '菜单ID', field : 'id', align : 'center', valign : 'middle', width : '80px' },
2020-06-11 14:42:41
277
原创 SpringBoot整合Redis读写JSON序列化格式
SpringBoot 1.xxxx版本的写法:新建一个配置类,使用注解@Configuration @Bean将其加入容器中,这个案例是针对Employee对象的,如果你的实体类是其他名字,就改掉,有多个就新增这两个方法,不是太方便// springboot 1.xx的版本@Configurationpublic class MyRedisConfig { //修改序列化,保存对象的json格式 //直接从redis给的RedisTemplate方法复制过来,添加一下两个步骤的内容即可 @B
2020-06-03 09:50:01
1390
原创 [STS]SpringBoot 整合thymelfeaf和spring-security没有快捷提示问题
这个问题整了半天导入命名空间xmlns:th=“http://www.thymeleaf.org”xmlns:sec=“http://www.thymeleaf.org/extras/spring-security”>比如:<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security"><head>&
2020-06-01 23:00:10
160
原创 [java]Ajax令人头疼的乱码问题解决办法
如果你的方法是返回中文字符串让Ajax接收的,基本都是会乱码,测了各种办法,比如设置Ajax编码,设置Response,设置字符串编码,都不行,还好,有个办法可以设置@RequestMapping中的produces属性为produces=“text/html;charset=UTF-8”,立马见效。根据源码注释解释,这个属性用于修改映射编码,最好是放在需要的方法上,放在类中可能会影响其他方法。@RequestMapping(value = "/userRegist",produces="text/htm
2020-05-25 12:33:17
310
原创 SSM整合之后怎么写Test,进行sql操作
1.导入spring-text包 <!-- spring测试 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.1.3.RELEASE</version>
2020-05-23 20:47:53
610
1
原创 JAVA覆盖和重写区别到底是什么
经常听到两种话:1.覆盖=重写。2.静态方法可以覆盖但不能重写吗,这两句话听起来挺矛盾的是不是,废话不多说直接上图package com.wangshili;public class Main { public static void main(String[] args) { Father f =new Child();//创建子类对象,父类引用 f.print();//调用父类...
2020-05-01 08:58:45
3644
原创 线程sleep与wait的区别(拓展yield和join)
线程sleep与wait的区别(拓展yield和join)关于这道题(多选题)关于 sleep()和 wait(),以下描述正确的一项是( ) A.sleep 是线程类(Thread)的方法,wait 是 Object 类的方法; B.sleep 不释放对象锁,wait 放弃对象锁; C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复; D.wait 后进入等待锁定...
2020-04-26 17:32:58
821
原创 Ajax用GET提交可以收到数据,而POST不行的原因
Ajax用GET提交可以收到数据,而POST不行的原因我这里用的SpringBoot+Ajax,在提交name属性时,发现GET提交后台就能正常收到,而POST提交了,网页调试里已经看到正确提交了,但是后台就是收不到,百度了一些前者的经验,主要有如下几个原因:1、提交的属性有重复名字的2、提交的属性类型与后台接收类型不一致3、未设置请求头:xhr.setRequestHeader("Con...
2020-04-14 23:14:37
2030
原创 SSM三大框架配置流程的思维导图
SSM三大框架配置流程的思维导图前言:相信很多初学者都很苦恼SSM的配置流程,一开始会觉得特别多而且不好记,于是在这里整理了一下,将其大致步骤做成思维导图,方便大家回忆与记忆,具体的内容还是要看详细代码哦,这里就不发了,因为等熟悉后,配置内容和步骤都可以灵活处理。看下图:提示:图片不清晰可以保存到电脑看如有疑问和建议,可回复。...
2020-03-31 15:29:40
603
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人