自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ基础知识

1、初始MQ1.1:同步和异步通讯微服务间通讯有同步和异步两种方式- 同步通讯:就像打电话,需要实时响应- 异步通讯:就像发邮件,不需要马上回复两种方式各有优劣,打电话的可以立即得到响应,但是你不能跟多个人同时打电话。发邮件可以同时与多个人收发邮件,但是往往响应会延迟:1.1.1:同步通讯:SpringCloud中的Feign调用就属于同步方式,虽然调用可以实时得到结果,但是存在下面的问题:- 耦合度高:每次加入新的需求,都要修改原来的代码- 性能下降:调用者需要等待服务提供者响应,如果调

2022-04-06 17:04:20 205

原创 RebbitMQ

1、消息可靠性问题:消息从发送,到消费者接收,会经历多个过程,其中的每一步都可能导致消息丢失,常见的丢失原因包括:1.1:发送时丢失:生产者发送的消息未送达exchange消息到达exchange后未达到queue1.2:MQ宕机,queue将信息丢失1.3:consumer接收到消息后未消费就宕机针对这些问题,给出的解决方案是:生产者确认机制mq持久化消费者确认机制失败重试机制生产者消息确认:RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢

2022-04-06 00:43:51 1276

原创 微服务组件

1、Euraka服务注册和发现Euraka服务注册中心:Eureka是基于REST的服务,用于定位服务,以实现云端中间件层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务注册与发现,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了 **Eureka基本的架构:** --Eureka采用了C-S的架构设计,EurekaServer作为服务注册功能的服务器,他是服务注册中心. --而系统中的其他微服务,使用Eureka的客户端连接到Eurek

2022-04-05 20:32:56 273

原创 什么是微服务

微服务就是用来解决单体架构所有模块全部耦合在一起,代码量大,维护困难,微服务每个模块就相当于单独的项目,代码明显减少,遇到问题也好解决微服务是系统提供了一套基础的架构,这种架构使得微服务可以独立部署、运行升级,这种架构还让微服务与微服务直接在结构式松耦合,而在功能上则表现为一个统一的整体,微服务可以按照业务功能本身的独立性来划分微服务的设计原则:1、 单一职责原则:意思是每个微服务只需要实现自己的业务逻辑就可以了,比如订单管理模块,它只需要处理订单的业务逻辑就行了,其它的不必考虑2、 服务自治原

2022-04-05 19:02:40 595

原创 解释不同方式的自动装配

**no方式:**是默认的方式,不进行自动装配,通过显式设置 ref 属性来进行装配。**byName方式:**是通过参数名自动装配,Spring 容器在配置文件中发现 bean 的 autowire 属性被设置成 byname之后,容器试图匹配、装配和该 bean 的属性具有相同名字的 bean。byType方式: 是通过参数类型自动装配,Spring 容器在配置文件中发现 bean 的 autowire 属性被设置成 byType之后,容器试图匹配、装配和该 bean 的属性具有相同类型的 bean

2022-04-05 19:00:07 479

原创 Application通常的实现方式是什么

FileSystemXmlApplication容器**😗*此容器在XML文件中加载bean定义,XML bean配置文件的全路径类名必须提供给它的构造函数**ClassPathXmlApplication容器:**此容器从XML文件中加载bean定义,需要正确的配置classPath,因为这个容器是从classPath加载配置文件**AnnotationConfigApplicationContext容器:**用于读取注解创建容器*** 核心容器的两个接口引发出的问题**ApplicationC

2022-04-05 18:59:18 232

原创 注解的原理

1)什么是注解: Java 注解就是代码中的一些特殊标记(元信息),用于在编译、类加载、运行时进行解析和使用,并执行相应的处理。它本质是继承了 Annotation 的特殊接口,其具体实现类是 JDK 动态代理生成的代理类,通过反射获取注解时,返回的也是 Java 运行时生成的动态代理对象 $Proxy1。通过代理对象调用自定义注解的方法,会最终调用 AnnotationInvocationHandler 的 invoke 方法,该方法会从 memberValues 这个Map中查询出对应的值,而

2022-04-03 16:21:05 1145

原创 Spring 框架中都用到了哪些设计模式?

1、工厂模式Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。2、单例设计模式在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,这一类对象只能有一个实例,如果制造出多个实例就可能会导致一些问题的产生,比如:程序的行为异常、资源使用过量、或者不一致性的结果。使用单例模式的好处:对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量

2022-04-03 15:52:42 615

原创 Spring事务的实现方式和实现原理

Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。Spring只提供统一事务管理接口,具体实现都是由各数据库自己实现,数据库事务的提交和回滚是通过 redo log 和 undo log实现的。Spring会在事务开始时,根据当前环境中设置的隔离级别,调整数据库隔离级别,由此保持一致。@Transactional 注解的关键属性大致有九个参数 意义isolation 事务隔离级别,默认为DEFAULTpropagation 事务传播机制,默认为

2022-04-03 15:24:36 2449

原创 Spring框架中的Bean是线程安全的么?如果线程不安全,那么如何处理

Spring容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体情况还是要结合Bean的作用域来讨论。(1)对于prototype作用域的Bean,每次都创建一个新对象,也就是线程之间不存在Bean共享,因此不会有线程安全问题。(2)对于singleton作用域的Bean,所有的线程都共享一个单例实例的Bean,因此是存在线程安全问题的。但是如果单例Bean是一个无状态Bean,也就是线程中的操作不会对Bean的成员执行查询以外的操作,那么这

2022-04-03 15:04:55 836

原创 BeanFactory和ApplicationContext

BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。(1)BeanFactory是Spring里面最底层的接口,是IoC的核心,定义了IoC的基本功能,包含了各种Bean的定义、加载、实例化,依赖注入和生命周期管理。ApplicationContext接口作为BeanFactory的子类,除了提供BeanFactory所具有的功能外,还提供了更完整的框架功能:(2)①BeanFactroy采用的是延迟加载形式来注入Bean的,只有在使用

2022-04-03 14:57:04 4266 1

原创 什么是IOC

IOC:控制反转原来我们使用的时候对象是由使用者控制的,有了Spring之后,可以将整个对象交给容器来帮我们进行管理DI: 依赖注入,将对于的属性注入到具体的对象中,实现依赖注入的方式有接口注入,setter注入,构造器注入通过populateBean完成属性注入容器:存储对象,使用map结构存储对象,在spring存储对象的时候一般有三级缓存,singletonObjects存放完成对象earlySingletonObjects存放半成品对象,singletonFactory用来存放lambad

2022-04-03 14:38:22 252

原创 SpringAOP

为什么要使用AOP:AOP面向切面编程其实是OOP面向对象编程的补充和完善,OOP是引入封装、继承和多态的概念建立的一种对象层次结构,用来模拟公共行为的一个集合。如果我们想要分散的对象引入公行为的时候,OOP就很吃力,比如日志功能,这个功能往往散布在各处的对象层次中,这种无关的代码会导致大量代码的重复,不利于各个模块的重用,AOP 就是可以解决这样的问题,它使用了一种横切的技术,将那些与业务无关,却为业务模块所共有等调用的逻辑封装起来,便于减少系统的重复代码,减低模块之间的耦合度,并有利于未来的可操作性和可

2022-04-03 13:52:10 346

原创 sporing循环问题

sporing循环问题一、构造器的循环依赖A有参构造创建要依赖B有参构造,B有参构造创建要依赖A有参构造,这样就产生了循环依赖的问题,这个没办法解决,只能不要写二、Setter循环依赖:1、通过构造函数创建了A对象(A对象是半成品,还没注入属性和调用init方法)2、将半成品A对象封装成工厂对象存入三级缓存3、A对象需要注入B对象,发现缓存里还没有B对象,开始创建B对象4、通过构造函数创建B对象(B对象 半成品,还没有注入属性和调用init方法)同样在三级缓存中存已经创建的B工厂对象5、B对

2022-04-03 09:57:53 348

原创 spring注入方式

接口注入:一个类依赖另一个接口都实现,先在配置文件中设定都实现类都类名,动态加载实现类,并通过接口强制转型后为class类所用Setter注入:Setter注入模式使用比较多,它更加直观,被注入的属性需要有set方法,setter注入时在bean实例创建完成之后执行Setter注入可以注入简单值和map、set、list、数组,简单值注入使用<property>的value属性构造器注入:构造器注入,也就是通过构造方法注入依赖,构造函数的参数一般情况下就是依赖项,spring容器会根据bean中

2022-04-03 09:28:39 4481

原创 Bean的生命周期过程

一、 Spring是什么?Spring是一个轻量级的java开发框架,它是为了解决企业应用开发的复杂性而创建的,spring的核心是控制反转(IOC)和面向切面编程(AOP),Spring的主要作用就是为代码解耦,降低代码间的耦合度,让对象和对象直接关系不是使用代码关联,而是通过配置来说明,即在spring中说明对象的关系,使用ico降低业务对象之间耦合度,使得主业务在相互调用过程中,不用在自己维护关系了,即不用再自己创建要使用的对象了,而是spring容器统一管理,自动注入;而AOP使得系统服务得到了最

2022-04-03 01:20:19 405

原创 IOC加载过程

sprig启动流程,个人学习用

2022-03-22 12:50:14 640

原创 静态代理设计模式

//接口,租房的动作抽象实现public interface Rent { public void rent();}-----------------------------//房东要租房子public class Landlord implements Rent{ @Override public void rent() { System.out.println("房东要出租房子!"); }}--------------------------

2022-03-01 21:43:12 68

原创 Spring静态代理设计模式

public interface myselfService { void add(); void delete();}--------------------------------public class myselfServiceImpl implements myselfService { @Override public void add() { System.out.println("添加增加方法"); } @Overrid

2022-03-01 21:41:35 59

原创 spring动态代理设计模式

public interface UserService { void add(); void delete(); void update(); void query();}----------------------------public class UserServiceImpl implements UserService { @Override public void add() { System.out.println("用户

2022-03-01 21:39:25 61

原创 抽象工厂设计模式

public interface IphoneProduct { void start(); void shotdown(); void openwife(); void setting();}-----------------------------public interface IRouterProduct { void start(); void shotdown(); void openwife(); void setting

2022-03-01 21:37:47 33

原创 工厂方法设计模式

public interface Car { void name();}-------------------------//工厂模式public interface CarFactory { Car getcart();}-------------------------public class mobai implements Car { @Override public void name() { System.out.println("膜

2022-03-01 21:33:11 37

原创 简单工厂设计模式

public interface Car { void name();}----------------------------public class tesila implements Car { @Override public void name() { System.out.println("特斯拉!"); }}----------------------------public class wuling implements Car {

2022-03-01 21:29:45 26

原创 动态代理设计模式

//接口,租房的动作抽象实现public interface Rent { public void rent();}--------------------------//房东要租房子public class Landlord implements Rent { @Override public void rent() { System.out.println("房东要出租房子!"); }}--------------------------/

2022-03-01 21:27:39 37

原创 Spring装饰器设计模式

//抽象装饰类public class WaterAdd implements Water{ private Water water; public WaterAdd(Water water) { this.water = water; } @Override public double jiaGe() { return this.water.jiaGe(); } @Override public Str

2022-03-01 21:25:47 408

原创 装饰器设计模式

//组件接口public interface Component { public String getName();}---------------------------//具体组件实现类Apublic class ComponentImplA implements Component{ private String name; public ComponentImplA(String name) { this.name = name; }

2022-03-01 21:22:23 28

原创 桥接设计模式

//苹果品牌public class Apple implements Brand{ @Override public void info() { System.out.println("苹果"); }}-----------------------------------public interface Brand { void info();}-----------------------------------public class Co

2022-03-01 21:19:37 31

原创 适配器设计模式

//要被适配的类 :网线public class Adaptee { public void request(){ System.out.println("链接网线上网"); }}//真正的适配器,需要链接到USB和电脑//类适配器,通过继承实现,单继承有局限性public class Adapter extends Adaptee implements NetToUsb{ @Override public void handleRequest()

2022-03-01 21:15:30 63

原创 单例设计模式

1、饿汉式单例//饿汉式单例 主动执行public class Hungry { //构造器 Hungry(String name) { System.out.println(Thread.currentThread().getName() + name + " OK" ); } private final static Hungry HUNGRY = new Hungry("1"); public static Hungry getInsta

2022-03-01 21:10:43 54

空空如也

空空如也

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

TA关注的人

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