自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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> &lt

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关注的人

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