框架
妖四灵.Shuen
这个作者很懒,什么都没留下…
展开
-
@Import importSelector ImportBeanDefinitionRegistrar 注册Bean 以及自定义扫描器
@Import 究竟是干什么的?如何去使用?从名字上我们可以直到import 是导入的意思,那么导入什么东西?spring中与导入最相关的就是bean,所以没错,我们大概猜测就是与Bean的注册有关。那么具体如何使用呢?我们以前编码的时候XML比较流行,但是现在一般都是使用注解,那么现在spring 是如何辨别哪些类需要被spring加载为Bean?@Component 这个注解是最关键的,@Service,@Configuration,@SpringBootApplication等等都是原创 2020-11-19 15:23:10 · 492 阅读 · 0 评论 -
Transaction rolled back because it has been marked as rollback-only 问题记录
今天高高兴兴上班,一打开电脑运行项目,突然就提示org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only啥,什么操作,代码也没动呀,????那么,开始认真的分析,首先,然后 MethodA()-> MethodB(),MethodB 数据异常引起了业务异常,B 方法向上抛出了异常,同时修改原创 2020-09-28 10:58:31 · 1396 阅读 · 0 评论 -
No validator could be found for constraint ‘javax.validation.constraints.Pattern‘ validating type ‘j
今天使用validation中的 @Pattern 突然报错,提示 pattern 没有对应的校验器去验证Integer类型参数,什么鬼?javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.lang.Integer'. Check configur原创 2020-07-02 11:07:35 · 10395 阅读 · 1 评论 -
Spring 扩展自定义标签案例实现
在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的 时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐, 特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案。扩展Spring自定义标签大致需要如下几步:1.创建需要扩展的组件(设计配置属性和Ja原创 2020-06-24 11:09:34 · 7470 阅读 · 0 评论 -
Dubbo如何与Spring IOC 配合工作 源码分析
思考????:dubbo是如何做到与spring集成的?是dubbo的扩展机制?还是spring的扩展机制?依赖于Spring提供的XML Schema可扩展机制,用户可以自定义XML Schema文件,并自定义XML Bean解析器,并集成到SpringIOC容器中。创建自定义扩展,主要有以下步骤:[1] 设计配置属性和JavaBean[2]创建XML Schema 文件(编写XSD文件)描述自定义的合法构建模块,主要用于定义数据约束;[3] 自定义个处理器类,编写NamespaceHa原创 2020-06-23 11:13:42 · 11424 阅读 · 0 评论 -
Dubbo IOC源码分析
这里我们先回顾以下之前得dubbo实例化对象的过程:看个小离职Dubbo IOC原理 熟悉spring的同学应该清楚,在spring的ioc中,例如A中有B属性,那么要注入B,会通过xml或注解指定B的引用,然后在A实例化时,会通过指定的引用实例化B。但是在上面的例子中,在我们创建bird扩展点时,并没有指定friend属性的类型,而是在运行speak方法时,通过url参数指定了friend的类型,这个动作似乎和上一篇文章介绍的自适应扩展点很相似,没错,dubbo的ioc就是通过自适应.原创 2020-06-19 11:22:27 · 11396 阅读 · 1 评论 -
dubbo 自适应SPI机制源码分析
在之前博客中,我们介绍了JAVA SPI 以及 Dubbo SPI 的基本使用以及源码分析,通过指定扩展点类型,可以创建扩展点的实现类,但是在dubbo中,有些时候并不期望直接创建出一个具体的扩展点实现,而是期望创建出一个未知类型的扩展点实现,在调用这个未知类型扩展点的扩展方法时,通过参数判断具体创建哪个类型的扩展点实现,然后在执行具体方法,看起来有些绕,请看接下来的具体使用。简单来说就是Animal接口有2个实现扩展点实现:dog和cat两个实现类,能不能根据实际情况动态传入参数并选择调用哪个方.原创 2020-06-18 17:14:49 · 11165 阅读 · 0 评论 -
Dubbo SPI 机制基本操作与源码深入理解
从上一篇文章java spi的原理中可以了解到,java的spi机制有着如下的弊端:只能遍历所有的实现,并全部实例化。 配置文件中只是简单的列出了所有的扩展实现,而没有给他们命名。导致在程序中很难去准确的引用它们。 扩展如果依赖其他的扩展,做不到自动注入和装配。 扩展很难和其他的框架集成,比如扩展里面依赖了一个Spring bean,原生的Java SPI不支持。我们都是知道一个合格的开源框架对于扩展的支持都要是相当弹性的,Dubbo 也不例外。Dubbo采用了简单的扩展方式,基于SPI机原创 2020-06-17 11:59:32 · 11448 阅读 · 0 评论 -
linux下后台启动springboot项目并编写启动停止shell脚本(转载)
我们知道启动springboot的项目有三种方式:运行主方法启动 使用命令 mvn spring-boot:run”在命令行启动该应用 运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行。我们在开发的时候,通常会使用前两种,而在部署的时候往往会使用第三种。但是,我们在使用java -jar来运行的时候,并非后台运行。下面我们来说说服务器上如何后台启动springboot项目。实际上,实现的方法有很多种,这里就列两种还转载 2020-05-27 10:42:05 · 13382 阅读 · 1 评论 -
idea 中出现“Сannot Run Git Cannot identify version of git executable: no response”解决办法
早上开开心心上班,打开idea准备先拉取以下代码突然git就报错了?Сannot Run GitCannot identify version of git executable: no response不能识别git运行版本是什么鬼呀我心里一阵颤抖,难道我又做了什么骚操作,不对呀,明明什么都没干呀?我打开配置信息settings->Version Control -> Git点击测试,也没有问题呀一顿操作过后,更加懵逼了,难道人品太差,怎么..原创 2020-05-26 16:54:21 · 38820 阅读 · 17 评论 -
java 压缩图片工具(Thumbnailator)
http://code.google.com/p/thumbnailator/支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。原创 2020-05-23 13:01:46 · 14735 阅读 · 0 评论 -
spring 循环依赖以及解决方案(吊打面试官)
Spring-bean的循环依赖以及解决方式原创惜暮 最后发布于2017-09-12 08:18:21 阅读数 46063 收藏展开本文主要是分析Spring bean的循环依赖,以及Spring的解决方式。 通过这种解决方式,我们可以应用在我们实际开发项目中。什么是循环依赖?怎么检测循环依赖Spring怎么解决循环依赖Spring对于循环依赖无法解决的场景Spring解决循环...原创 2020-05-14 11:09:47 · 43701 阅读 · 2 评论 -
分布式CAP原则与BASE理论
CAP含义:CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不原创 2020-05-09 10:03:15 · 13769 阅读 · 0 评论 -
(zookeeper)ZK和Eureka 区别(CAP 与 设计原理)
厕所原创 2020-05-12 10:18:49 · 13721 阅读 · 0 评论 -
springboot 自动配置原理(二)源码分析
首先我们要知道 @EnableAutoConfiguration 是用于激活 Spring Boot 自动装配的特性。但是平常项目开发中我们一般使用的是@SpringBootApplication,可以通过查看注解代码,知道springboot里面 包含了 @EnableAutoConfiguration 注解,所以当你使用@SpringBootApplication已经启动了自动装配的特性...原创 2020-03-22 18:16:47 · 12684 阅读 · 0 评论 -
springboot 自动配置原理(一) 实现自定义自动配置以及条件装配
spring boot有着丰富的特性,其中的自动配置特性极大的简化了程序开发中的工作(不用写一行XML)。本文我们就来看一下spring boot是如何做到自动配置的。在开始分析之前,直接编写一个测试案例来体验下在开发项目中我们可以如何实现自己的自定义配置(直接上代码感受 Talk is cheap. Show me the code)import org.springframework.b...原创 2020-03-07 13:17:30 · 14535 阅读 · 2 评论