![](https://img-blog.csdnimg.cn/20191229000400525.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
Spring
Chill_Lyn_
进化成更好的人。
展开
-
有关 分布式事务 的小讨论
文章目录CAP 定理raft算法实现一致性领导选举日志复制分区容错BASE理论分布式事务解决方案2PC模式柔性事务-TCC 事务补偿型方案柔性事务- 最大努力通知型方案柔性事务- 可靠消息+最终一致性方案(异步确保型)CAP 定理一致性(Consistency) 在分布式系统中的所有数据备份,在同一时刻是否同样的值(等同于所有节点访问同一份最新数据副本)可用性(Availability) 在集群一部分节点故障后,集群整体是否还能响应客户端的读写请求(对数据更新具备高可用性)分区容错性(Partit原创 2020-08-21 10:01:33 · 1257 阅读 · 0 评论 -
Java_Filter和Interceptor的区别
文章目录FilterInterceptor区别实现原理使用范围触发时机拦截的请求范围注入Bean情况控制执行顺序转载自:https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650131098&idx=2&sn=4ca5766e9bca1d22126726b4ecdce52e&chksm=f36bd7bbc41c5eadc1c73f87e38d76f7aa732e588c7f7e59a22c501d178401e60f转载 2020-06-10 21:18:28 · 298 阅读 · 0 评论 -
Spring_事务
文章目录管理事务的方式事务的隔离级别事务传播@Transactional(rollbackFor = Exception.class)管理事务的方式编程式事务,在代码中硬编码,不推荐使用声明式事务,通过XML或者注解配置,推荐使用事务的隔离级别TransactionDefinition.ISOLATION_DEFAULT: 使用后端数据库默认的隔离级别,Mysql 默认采用的 REPEATABLE_READ隔离级别 Oracle 默认采用的 READ_COMMITTED隔离级别.Tran原创 2020-05-31 20:25:11 · 308 阅读 · 0 评论 -
Spring_循环依赖
@Componentclass A{ @Resource private B b;}@Componentclass B{ @Resource private A a;}Spring在创建单例bean时是如何解决循环依赖?注:在多例模式下,会抛出BeanCurrentlyInCreationException(beanName);public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry impleme原创 2020-05-31 19:52:53 · 290 阅读 · 0 评论 -
Spring_Bean的生命周期
实例化Bean对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入一个尚未初始化的依赖时,容器会调用createBean方法进行实例化。对于ApplicationContext容器,当容器启动结束后,通过回去BeanDefinition对象中的信息,实例化所有bean。InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiation方法在实例化之前调用该方法的返回值会替换原本的.原创 2020-05-22 12:15:29 · 284 阅读 · 0 评论 -
Spring_@Resource和@Autowired的异同
相同点两者都是Bean注入时使用标注在属性或者setter方法上不同点@Resource是javax.annotation.Resource包下,@Autowired是Spring的注解@Resource默认按照ByName自动注入,@Autowired默认按照ByType自动注入@Resource装配顺序如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常如果指定了name,则从上下文中查找名称匹配的bean进行装配,找不到则原创 2020-05-22 09:34:20 · 173 阅读 · 0 评论 -
Spring_BeanFactory\FactoryBean\ApplicationContext的区别
文章目录BeanFactoryFactoryBeanApplicationContext参考BeanFactoryBeanFactory定义了 IOC 容器的最基本形式,并提供了 IOC 容器应遵守的的最基本的接口,也就是 Spring IOC 所遵守的最底层和最基本的编程规范。在 Spring 代码中, BeanFactory 只是个接口,并不是 IOC 容器的具体实现,但是 Spring 容器给出了很多种实现,如 DefaultListableBeanFactory 、 XmlBeanFactor原创 2020-05-17 21:53:33 · 321 阅读 · 0 评论 -
Spring_依赖注入的四种方式
Set注入构造器注入静态工厂方法注入实例工厂方法注入参考:https://www.iteye.com/blog/blessht-1162131原创 2020-05-17 19:15:17 · 199 阅读 · 0 评论 -
SpringCloud Alibaba_Sentinel实现熔断与限流
文章目录安装Sentinel下载运行命令访问sentinel管理界面流控规则基本介绍降级规则RT异常比例异常数安装Sentinelsentinel组件由两个部分组成:核心库(Java客户端),不依赖任何框架和库,能够运行于Java运行时环境,同时对SpringCloud等框架也有较好的支持。控制台(DashBoard)基于SpringBoot开发,打包后可以直接运行,不需要额外的Tomc...原创 2020-05-14 19:52:57 · 371 阅读 · 0 评论 -
SpringCloud Alibaba_Nacos服务注册和配置中心
文章目录简介下载安装运行服务注册中心服务提供者服务消费者注册中心对比Nacos AP与CP模式切换简介Nacos是Naming、Configuration和Service的组合,即Dynamic Naming and Configuration Service,通俗来说,就是注册中心和配置中心的组合(等价于Eureka+Config+Bus)下载安装运行下载https://githu...原创 2020-04-16 10:23:29 · 826 阅读 · 0 评论 -
SpringCloud_Sleuth分布式链路跟踪
文章目录概述搭建链路监控zipkin下载运行jar运行控制台服务提供者服务消费者效果参考Demo概述在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个请求都会形成一条复杂的分布式服务调用链路,链路中任何一环出现高延时或错误都会引起整个请求最后的失败。Sleuth提供了一套完整的服务跟踪的解决方案。在分布式系统中提供追踪解决方案并且兼...原创 2020-04-13 16:31:03 · 267 阅读 · 0 评论 -
SpringCloud_Stream消息驱动
文章目录概述消息驱动之生产者消息驱动之消费者分组消费与持久化参考Demo概述屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。在没有Binder这个概念的情况下,SpringBoot应用要直接与消息中间件进行信息交互的时候,由于各消息中间件构建的初衷不同,他们的实现细节上有较大差异,通过定义Binder作为中间层,完美实现了应用程序与消息中间件细节之间的隔离。Stream对消息...原创 2020-04-13 16:02:50 · 283 阅读 · 0 评论 -
SpringCloud_Config分布式配置中心&Bus消息总线
文章目录Config概述Config服务端配置Config客户端配置Bus概述动态刷新全局广播动态刷新定点通知参考DemoConfig概述SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。SpringCloud Config分为服务端和客户端两个部分。服务端也称为分布式配置中心,它是一个...原创 2020-04-13 15:02:23 · 256 阅读 · 0 评论 -
SpringCloud_Gateway网关
文章目录概述简介特性与Zuul的区别Zuul 1.x模型GateWay模型核心概念Route 路由Predicate 断言Filter 过滤工作流程配置概述简介SpringCloud全家桶中有个很重要的组件就是网关,在1.X版本中采用Zuul,但在2.X版本中,Zuul的升级一直跳票,SpringCloud自己研发了GateWay替代Zuul。SpringCloud Gateway使用的...原创 2020-04-12 23:40:12 · 268 阅读 · 0 评论 -
SpringCloud_Hystrix熔断器
文章目录概述服务雪崩Hystrix重要概念服务降级服务熔断服务限流案例服务降级微服务提供者微服务消费者服务熔断微服务提供者原理工作流程服务监控HystrixDashboard实现参考Demo概述服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B或者微服务C,微服务B和微服务C又调用其他微服务,这就是所谓的扇出。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就...原创 2020-04-11 14:12:35 · 214 阅读 · 0 评论 -
SpringCloud_OpenFeign服务接口调用
文章目录概述使用步骤超时控制日志打印日志级别配置概述Feign是一个声明式WebService客户端。使用Feign能让编写一个WebService客户端更加简单。使用方法是定义一个服务接口然后在上面添加注解。支持可插拔式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持SpringMVC标准注解和HTTPMessageConverters。Feign可以与Eureka和...原创 2020-04-10 19:11:29 · 287 阅读 · 0 评论 -
SpringCloud_Ribbon负载均衡调用
文章目录概述负载均衡(Load Balance)是什么Ribbon客户端本地负载均衡 VS Nginx服务端负载均衡Eureka+Ribbon+RestTemplate使用核心组件IRule规则替换轮询算法原理参考Demo概述SpringCloud Ribbon是基于Netflix Ribbon实现的一套客户端复杂均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提...原创 2020-04-09 22:17:40 · 183 阅读 · 0 评论 -
SpringCloud_三款服务注册中心异同(Eureka、Zookeeper、Consul)
文章目录CAPAP(Eureka)CP(Zookeeper、Consul)CAPC: Consistency(强一致性)A: Availability(可用性)P: Parttition tolerance(分区容错性)CAP理论关注粒度是数据,而不是整体系统设计的策略。分区容错性要保证,所以要么是CP,要么是AP。AP(Eureka)CP(Zookeeper、Consul)...原创 2020-04-09 15:52:41 · 215 阅读 · 0 评论 -
SpringCloud_Consul服务注册与发现
文章目录简介下载安装运行微服务提供者微服务消费者参考Demo简介Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每个都可以根据需要单独使用,也可以一起使用以构建全方位服务网格,总之consul提供了一种完整的服务网络解决方案。优点:基于raft协议,简洁支持健康检查支持...原创 2020-04-09 15:39:58 · 278 阅读 · 0 评论 -
SpringCloud_Zookeeper服务注册与发现
文章目录Eureka停止更新了,怎么办?微服务提供者微服务消费者Eureka停止更新了,怎么办?Zookeeper是一个分布式协调工具,可以实现注册中心功能关闭Linux服务器防火墙后启动Zookeeper服务器Zookeeper服务器取代Eureka服务器,zk作为服务注册中心Zookeeper_安装部署原理及应用微服务提供者pom<!-- SpringBoot整合z...原创 2020-04-09 14:27:15 · 185 阅读 · 0 评论 -
SpringCloud_Eureka服务注册与发现
文章目录基础知识服务治理服务注册于发现组件Eureka ServerEureka CLient单机Eureka构建步骤Eureka Server构建Eureka Client构建集群Eureka构建修改Eureka Server 集群的yaml修改Eureka Client 微服务模块的yaml如果微服务模块为集群,通过在eureka上注册过的微服务名称调用使用@LoadBalanced注解赋予R...原创 2020-04-09 13:00:29 · 246 阅读 · 0 评论 -
SpringBoot_任务(异步任务、定时任务)
文章目录异步任务定时任务异步任务@EnableAsync@SpringBootApplicationpublic class Springboot04TaskApplication {@Servicepublic class AsyncService { //告诉Spring这是一个异步方法 @Async public void hello(){ ...原创 2020-03-18 15:04:49 · 213 阅读 · 0 评论 -
SpringBoot_消息(整合RabbitMQ)(2.2.5 version)
文章目录概述RabbitMQ简介核心概念RabbitMQ运行机制Exchange类型directfanouttopicRabbitMQ安装测试Docker安装运行RabbitMQ浏览器打开http://192.168.2.2:15672添加Exchange添加QueueExchange binding QueueExchange publish message概述大多应用中,可通过消息服务中...原创 2020-03-17 23:05:52 · 763 阅读 · 0 评论 -
SpringBoot_缓存(JSR-107、Spring缓存抽象、整合Redis)(2.2.5 version)
文章目录JSR-107Spring缓存抽象概述重要概念&缓存注解@Cacheable属性demo原理运行流程@CachePut@CacheEvict属性demo@Caching@CacheConfig整合RedisJSR-107Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。...原创 2020-03-17 08:18:44 · 301 阅读 · 0 评论 -
SpringBoot_自定义starter(2.2.5 version)
自定义starter1. 场景需要使用到的依赖是什么?2. 如何编写自动配置@Configuration //指定这个类是一个配置类@ConditionalOnXXX //在指定条件成立的情况下自动配置类生效@AutoConfigureAfter //指定自动配置类的顺序@Bean //给容器中添加组件@ConfigurationPropertie结合相关xxxPrope...原创 2020-03-15 12:08:19 · 300 阅读 · 0 评论 -
SpringBoot_启动配置原理(2.2.5 version)
SpringBoot笔记一、Spring Boot 入门1. 创建HelloWorld项目1. 创建一个maven工程;(jar)2. 导入spring boot相关的依赖3. 编写一个主程序;启动Spring Boot应用4. 编写相关的Controller、Service5. 运行主程序测试6. 简化部署2. Hello World探究1. POM文件1. 父项目2. 启动器2. 主程序类,主...原创 2020-03-15 11:40:22 · 203 阅读 · 0 评论 -
SpringBoot_数据访问 整合Druid、Mybatis、SpringData JPA(2.2.5 version)
文章目录SpringBoot与数据访问1. JDBC2. 整合Druid数据源3. 整合MyBatis4)注解版5)配置文件版4. 整合SpringData JPASpringBoot与数据访问1. JDBC<dependency> <groupId>org.springframework.boot</groupId> <artifactId&g...原创 2020-03-14 19:54:05 · 247 阅读 · 0 评论 -
Spring/SpringBoot_在控制台输出Mybatis sql日志
文章目录SpringSpringBootSpring在配置文件中添加设置项<settings> <setting name="logImpl" value="LOG4J"/></settings>SpringBootmybatis不使用xml配置文件的情况下,可以在application.yml文件中添加:mybatis: configur...原创 2020-03-14 17:41:48 · 1166 阅读 · 0 评论 -
SpringBoot_Web开发(2.2.5version)
文章目录1. 简介2. SpringBoot对静态资源的映射规则;3. 模板引擎1. 引入thymeleaf;2. Thymeleaf使用3. 语法规则4. SpringMVC自动配置1. Spring MVC auto-configuration2. 扩展SpringMVC3. 全面接管SpringMVC;5. 如何修改SpringBoot的默认配置6. RestfulCRUD1)默认访问首页2...原创 2020-03-13 15:16:53 · 841 阅读 · 0 评论 -
SpringBoot_日志(2.2.5 version)
文章目录1. 日志框架2. SLF4j使用1. 如何在系统中使用SLF4j https://www.slf4j.org2. 遗留问题3. SpringBoot日志关系4、日志使用;1、默认配置2、指定配置5、切换日志框架1. 日志框架市面上的日志框架;JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…日志门面 (日志的抽象层)...原创 2020-03-13 15:06:30 · 551 阅读 · 0 评论 -
SpringBoot_配置文件及自动配置原理(2.2.5 version)
文章目录二、配置文件1. 配置文件2. YAML语法:1. 基本语法2. 值的写法字面量:普通的值(数字,字符串,布尔)对象、Map(属性和值)(键值对):数组(List、Set):3. 配置文件值注入1. properties文件中文乱码2. @Value获取值和@ConfigurationProperties获取值比较3. 配置文件注入值数据校验4. @PropertySource&@...原创 2020-03-13 15:02:27 · 394 阅读 · 0 评论 -
SpringBoot_入门(2.2.5version)
文章目录一、Spring Boot 入门1. 创建HelloWorld项目1. 创建一个maven工程;(jar)2. 导入spring boot相关的依赖3. 编写一个主程序;启动Spring Boot应用4. 编写相关的Controller、Service5. 运行主程序测试6. 简化部署2. Hello World探究1. POM文件1. 父项目2. 启动器2. 主程序类,主入口类3. ST...原创 2020-03-13 14:59:20 · 788 阅读 · 0 评论 -
Spring_异常处理:org.thymeleaf.exceptions.TemplateInputException: Error resolving template
如果想响应回去的是一个HTML页面,注意return语句中前面是否多加了"/"。如果想响应回去的是不包含视图的对象,controller注解建议使用@RestController,或者响应方法添加@ResponseBody注解。...原创 2020-02-09 13:01:27 · 340 阅读 · 0 评论 -
SSM_Spring&SpringMVC&MyBatis基于xml的框架整合
1. 导入依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/...原创 2020-02-04 10:28:39 · 283 阅读 · 0 评论 -
Spring_组成部分
核心容器:提供Spring框架的基本功能。核心容器包含Spring-core,Spring-Beans,Spring-Context,Spring-context-support,Spring-expression几个模块Spring-core,Spring-Beans模块提供框架最基本的功能,包括IOC和DI的特性,核心容器的主要组件是BeanFactory,是工厂模式的实现。Bean...原创 2020-02-03 17:44:18 · 449 阅读 · 0 评论 -
Spring_编码过滤器
spring自带编码过滤器,不用自己写了,只需要在web.xml中调用<!-- 编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEn...转载 2020-01-30 10:53:09 · 650 阅读 · 0 评论 -
SSM_基于JavaConfig(不使用XML配置文件)整合Spring&SpringMVC&Mybatis
在pom.xml中导入相关依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache...原创 2020-01-04 13:05:46 · 523 阅读 · 2 评论 -
Spring_MVC架构请求处理流程和使用
Spring MVC架构请求处理流程用户发送请求☞DispatcherServletDispatcherServlet是前端控制器,作为统一访问点,进行全局的流程控制。其收到请求后不直接进行处理,而是委托其他解析器进行处理。DispatcherServlet☞HandlerMappingHandlerMapping将请求映射为HandlerExecutionChain对象(一个Handl...原创 2020-01-01 22:36:35 · 196 阅读 · 0 评论 -
Spring_AOP_相关概念和基于xml、Java的配置
AOP出现的背景分离关注分离关注就是将某一通用的需求功能从不相关的类中分离出来,使得很多类共享一个行为,当行为需求需要变化时,只需让该行为发生变化,不必修改其他类设计模式追求的本质就是调用者与被调用者之间的解耦OOP说到AOP,不得不提OOP,面向对象编程(三大特征:封装、继承、多态)是针对问题领域中以及处理过程中存在的实体及其属性和行为进行抽象和封装,从继承和多态的特性可以看出OOP...原创 2020-01-01 16:40:42 · 150 阅读 · 0 评论 -
Spring_IOC_Bean基于xml、annotation、Java的配置
使用Spring前提,在pom.xml中添加依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.12.RELEASE</version&g...原创 2019-12-29 22:15:10 · 192 阅读 · 0 评论