自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Baro-du

一个Cool小帅的博客

  • 博客(15)
  • 收藏
  • 关注

原创 对于乐观锁和悲观锁的理解

对于乐观锁和悲观锁的理解悲观锁(Pessimistic Lock):定义:每次去拿数据的时候都认为别人会修改。所以每次在拿数据的时候都会上锁。这样别人想拿数据就被挡住,直到悲观锁被释放。互斥同步:互斥同步最主要的问题就是进行线程阻塞和唤醒所带来的性能问题,因此这种同步也称为阻塞同步(Blocking Synchronization)。从处理问题的方式上说,互斥同步属于一种悲观的并发策略,总是认为只要不去做正确的同步措施(例如加锁),那就肯定会出现问题,无论共享数据是否真的会出现竞争,它都要进行加锁(这

2021-02-02 19:57:34 161 1

原创 Eureka的自我保护

Eureka的自我保护Eureka客户端每个30s/次向注册中心续约 ,如果3次续约失败,注册中心会剔除服务的通信地址,为了防止客户端因为网络波动导致的续约失败而误删除服务,那么注册中心会把续约失败的服务保留一段时间可能隔一段时间,网络顺畅有可以续约了呢?线上时间建议起来这会带来一些问题,如果服务真的挂了,可能注册中心还是会保留服务,服务调用的时候可能会调用一个挂掉的服务,这种情况我们可以选择配置一些重试,或者多机重试等。或者把服务剔除的相关时间改小。...

2021-02-01 19:57:21 82

原创 SpringMVC的Controller是单例还是多例,有没有并发安全问题,如何解决?

SpringMVC的Controller是单例还是多例,有没有并发安全问题,如何解决?1.Controller是单例,如果定义了成员变量就有并发问题2.可以使用局部变量3.在Controller中使用ThreadLocal变量,创建ThreadLocal对象,设置当前线程绑定的局部变量这样一来,每一个线程都会有独立的局部变量ThreadLocal:原理 ,把一个变量/对象/数据 绑定到当前线程中,对于这个变量每个线程相互隔离ThreadLocal.set(“数据”); -> 以当前线程副本

2021-02-01 12:37:11 711

原创 对于CAP理论,Eureka选择的是AP还是CP?它保证了一致性还是可用性?

对于CAP理论,Eureka选择的是AP还是CP?它保证了一致性还是可用性?1.CAP指的是 一致性(Consistency) ,可用性(Availability), 分区容错性(Partition tolerance) ,在分布式中,网络是不可控的,所以首先要保证 P ,然后在A和C之间做选择。 要么AP ,要么CP 。2.Eureak选择AP 保证了可用性降低了一致性 , Nacos 默认 AP ,可以 CP和AP可以切换 , Zookeeper 就是 CP ; Redis AP.

2021-01-30 17:13:53 6242

原创 SpringBoot是如何整合SpringMVC的?

SpringBoot是如何整合SpringMVC的?1.启动类上的@SpringBootApplication注解中包括了一个@EnableAutoConfiguration注解,它的作用是开启SpringBoot自动配置2.这个自动配置注解 @EnableAutoConfiguration注解 上导入了一个选择器(@Impot(AutoConfigurationImportSelector.class),3.这个导入选择器使用 SpringFactoriesLoader ,加载了 classpath

2021-01-30 16:05:41 1006 1

原创 SpringBoot是如何整合DataSource的?

SpringBoot是如何整合DataSource的?1.启动类上的@SpringBootApplication注解中包括了一个@EnableAutoConfiguration注解,它的作用是开启SpringBoot自动配置2.这个自动配置注解 @EnableAutoConfiguration注解 上导入了一个选择器(@Impot(AutoConfigurationImportSelector.class),3.这个导入选择器使用 SpringFactoriesLoader ,加载了 classpat

2021-01-30 16:01:21 377

原创 SpringBoot的启动流程

SpringBoot的启动流程1.开启秒表2.获取Spring启动的监听器,调用starting()开启监听3.创建了一个ApplicationArguments参数对象4.准备环境对象 ConfigurableEnvironment环境对象中有 配置,profile5.打印banner6.创建上下文ApplicationContext(AnnotationConfigApplicationContext)7.获取异常报告8.准备上下文9.刷新Spring上下文10.刷新上下文的后续工作

2021-01-30 15:51:48 128

原创 String和StringBuilder和StringBuffer区别?

String和StringBuilder和StringBuffer区别?1.三者底层都是char[]数组实现 , String底层给char[]数组进行了final修饰,所以是不可变的,而后两者是可变的2.StringBuilder和StringBuffer的区别是 :StringBuffer的方法是synchronized修饰的,方法是线程安全的,但是性能也降低了,而StringBuilder反之3.涉及到字符串拼接不建议使用String,可以使用后两个。如果在多线程环境建议使用StringBuff

2021-01-30 12:44:07 268

原创 说一下你理解的动态代理?

说一下你理解的动态代理?1.动态代理有2种方式,基于接口的JDK动态代理2.基于实现的CGLIB代理,Spring默认使用JDK动态代理,如果原生类没有接口,就会选择CGLIB代理,这个也可以手动配置3.先说说JDK动态代理,我们如果要为一个类生成代理类,我们需要写一个 InvocationHandler 的实现,这个handler中需要持有原生类,这个handler有一个invoke方法需要复写,参数是(代理类,被调用方法,方法参数) ,代码增强就在这个方法中增强,比如事务:就可以 在第一行开启

2021-01-30 12:40:05 214

原创 将一个Bean交给Spring管理有哪些?

将一个Bean交给Spring管理有哪些?1.在类上贴:@Controller ; @Service ;@Component ; @Repository ; @Configuration 这些类通过@ComponentScan扫描2.定义方法,方法贴@Bean ,方法返回类的实例3.xml中定义Bean4.@Import(类.class) ; @Import(ImportSelector.class) ,@Import(ImportBeanDefinitionRegistrar.clas

2021-01-30 11:55:40 335 1

原创 Spring中@Transactionl注解是如何管理事务的?

Spring中@Transactionl注解是如何管理事务的?1.首先Spring使用的是AOP来管理实务,实现原理是动态代理2.事物本身是MySql的,Spring只是通过JDBC的Api去操作Mysql的事务命令,提交,回滚等。 Spring只是制定了事务的API,实现还是JDBC3.通常我们的Service需要打@Transactionl注解 ,Spring扫描这些标签,就知道哪些类,方法需要事物4.使用Aop的思想,基于动态代理的原理来为这些Service生成代理类5.代理类就对原生的se

2021-01-30 11:51:28 243

原创 IOC启动原理

IOC启动原理1.加载配置XML 配置 ; 或者 配置类2.解析配置(xml Dom解析) ; 或者扫描被管理的类上的注解(@Service等等)3.对Bean进行定义和封装成BeanDefinition4.通过BeanDefinitionRegistry注册BeanDefinition到一个ConcurrentHashMap 中5.如果Bean是迫切初始化就会根据BeanDefinition通过反射创建Bean的实例,缓存到一个HashMap中6.当通过容器getBean的时候,如果是单例的

2021-01-30 11:47:06 126

原创 HashMap底层用到了什么数据结构?

HashMap底层用到了什么数据结构?1.用到了数组,链表,红黑树结构 。2.数组长度是16,每个元素都是key-value结构, 元素存储到%75(0.75负载因子)进行 2倍扩容。3.存储元素的算法是 hash(key) % 16 根据key进行hash计算得到的值来对数组长度16 取模,余数作为元素在数组中的存储索引位置。4.链表为了解决Hash冲突 , 不同的key进行 hash计算可能hash值一样,那么技术出来的存储索引位置也一样,这叫hash冲突,HashMap使用链表的方式来解决

2021-01-30 11:39:14 1249 2

原创 对IOC&AOP的理解

对IOC&AOP的理解1.IOCIOC/DI:控制翻转,对并的创建,初始化,销毁等等工作就交给Spring容器 ,简化程序员的工作量,不需自己去new对象也不需要为维护对象之间的依赖关系了,因为DI实现了对象之间的依赖。1.1Spring的IOC启动原理Spring启动扫描配置(XML,Java配置) -> 扫描配置解析配置,解析Bean的定义,封装成BeanDefinition -> 解析配置BeanDefinitionRegister注册器,注册BeanD

2021-01-26 19:39:25 213

转载 Elasticsearch的使用

**Elasticsearch的使用场景深入详解**原文链接: http://blog.csdn.net/laoyang360/article/details/52227541场景—:使用Elasticsearch作为主要的后端传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力。这是因为早期的搜索引擎不能提供耐用的​​存储或其他经常需要的功能,如统计。Elasticsearch是提供持久存储、统计等多项功能的现代搜索引擎。如果你开始一个新项目,我们建议您考虑使用El

2021-01-22 15:57:30 117 2

空空如也

空空如也

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

TA关注的人

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