Spring-Boot 2.1.x和主要的bean定义

我最近将应用程序从Spring Boot 1.5.X迁移到Spring Boot 2.X ,发现覆盖Spring Bean定义存在问题。 其中一种配置是在Kotlin中遵循的:

@Configuration
class DynamoConfig {@Beanfun dynamoDbAsyncClient(dynamoProperties: DynamoProperties): DynamoDbAsyncClient {...}@Beanfun dynampoDbSyncClient(dynamoProperties: DynamoProperties): DynamoDbClient {...}
}

现在,为了进行测试,我想覆盖这两个bean定义,并按照以下原则进行操作:

@SpringBootTest
class DynamoConfigTest {@Testfun saveHotel() {val hotelRepo = DynamoHotelRepo(localDynamoExtension.asyncClient!!)val hotel = Hotel(id = "1", name = "test hotel", address = "test address", state = "OR", zip = "zip")val resp = hotelRepo.saveHotel(hotel)StepVerifier.create(resp).expectNext(hotel).expectComplete().verify()}@TestConfigurationclass SpringConfig {@Beanfun dynamoDbAsyncClient(dynamoProperties: DynamoProperties): DynamoDbAsyncClient {...}@Beanfun dynamoDbSyncClient(dynamoProperties: DynamoProperties): DynamoDbClient {...}}
}

这种覆盖类型适用于Spring Boot 1.5.X,但不适用于Spring Boot 2.1.X,并显示以下错误:

Invalid bean definition with name 'dynamoDbAsyncClient' defined in sample.dyn.repo.DynamoConfigTest$SpringConfig:.. 
There is already .. defined in class path resource [sample/dyn/config/DynamoConfig.class]] bound

我认为这种行为是正确的,不允许以这种方式覆盖bean是应用程序的正确默认行为,但是我确实希望能够覆盖bean进行测试,这要归功于Stack Overflow答案和Spring Boot 2.1.X发行说明 ,解决方法是允许使用属性“ spring.main.allow-bean-definition-overriding = true”进行覆盖,因此,通过进行此更改,测试如下所示:

@SpringBootTest(properties = ["spring.main.allow-bean-definition-overriding=true"])
class DynamoConfigTest {@Testfun saveHotel() {val hotelRepo = DynamoHotelRepo(localDynamoExtension.asyncClient!!)val hotel = Hotel(id = "1", name = "test hotel", address = "test address", state = "OR", zip = "zip")val resp = hotelRepo.saveHotel(hotel)StepVerifier.create(resp).expectNext(hotel).expectComplete().verify()}@TestConfigurationclass SpringConfig {@Beanfun dynamoDbAsyncClient(dynamoProperties: DynamoProperties): DynamoDbAsyncClient {...}@Beanfun dynamoDbSyncClient(dynamoProperties: DynamoProperties): DynamoDbClient {...}}
}

翻译自: https://www.javacodegeeks.com/2019/01/spring-boot-overriding-bean-definition.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤题库】陕西师范大学600011 结构化学作业(专升本)

《结构化学》作业 一.填空题 1.测不准关系的正确表达式是(  ) 2.氢原子的波函数ψ可以写成径向部分Rnl与角度部分(  )的乘积。 3.在同核双原子分子中,两个2p轨道组合产生两个(  )轨道。 4…

php 5.5.7.tar.gz,编译 php-5.5.26.tar.gz

需要GD库大于2.1版本编译GD库请参考文章 安装GD库./configure --prefix/usr/local/php/ --with-config-file-path/usr/local/php/etc/ --with-libxml-dir/usr/local/libxml2/ --with-jpeg-dir/usr/local/jpeg/ --with-freetype-dir/usr/local/freetype/ --with-gd --with-mcry…

国家开放大学2021春1009离散数学(本)题目

教育 教育 试卷代号:1009 2021年春季学期期末统一考试 离散数学(本) 试题 2021年7月 一、单项选择题(每小题4分,本题共20分) 1.若集合A{1,2,3,4},则下列表述…

国家开放大学2021春1107传感器与测试技术题目

教育 教育 试卷代号:1107 2021年春季学期期末统一考试 传感器与测试技术 试题 2021年7月 一、单项选择题(12小题,每小题3分,共36分) 1.电阻应变片的绝缘电阻是指已粘贴的应变片的( )间的电阻值…

php 有 stringbuffer,String、StringBuffer、StringBulider三者介绍

三者都实现了CharSequence接口,因此CharSequence可认为是一个字符串的协议接口1.String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁;我们常常定义的时候 S…

【渝粤题库】广东开放大学 会展策划 形成性考核

选择题 题目:会展的()是指企业和品牌利用展览会不断翻新花样,宣传自己品牌。 题目:目前世界上规模最大、影响力最广的综合展是()。 题目:以下属于宣传类展览会的是(&…

【渝粤题库】广东开放大学 传播学理论与实务 形成性考核

选择题 题目: R语言是一种用于数据统计与分析的一种商用、收费的工具 题目:1、让受众透过媒介经常看到你,可以增强(B )。 题目:4、以下不属于非语言符号的是 (A ) 题目:6、(D &…

php生成网页按钮,JavaScript实现自动生成网页元素功能(按钮、文本等)_javascript技巧...

创建元素的方法:1、利用createTextNode()创建一个文本对象2、利用createElement()创建一个标签对象3、直接利用容器标签中的一个属性:innerHTML-----本质上改该标签容器中的“html代码”,不是我们认为的对象树的操作详解代码:这是…

【渝粤题库】广东开放大学 静态网页技术 形成性考核

选择题 题目:通常网页的首页被称为()。 答案: A、网页 B、主页 C、网址 D、页面 题目:网页的基本语言是( )。 答案: A、HTML B、XML C、JavaScript D、VBScript 题目:下列…

adf 自动输稿器_在ADF实体PK属性中使用MySQL自动增量PK列

adf 自动输稿器大家好。 继续进行ADF MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用。 如果使用的是Oracle数据库,则可以使用oracle.jbo.domain.DBSequence以及序列和触发器来立即进行操作。 为简单起…

matlab rbf核函数,RBF高斯径向基核函数-svm

RBF高斯径向基核函数(单值:两个点相似性)XVec表示X向量。||XVec||表示向量长度。r表示两点距离。r^2表示r的平方。k(XVec,YVec) exp(-1/(2*sigma^2)*(r^2)) exp(-gamma*r^2)...... 公式-1这里, gamma1/(2*sigma^2)是参数, r||XVec-YVec||实际上,可看作是计算2个点X…

【渝粤题库】广东开放大学 人力资源本 形成性考核

选择题 题目:中国规定的最低就业年龄是( ) 答案: A、15岁 B、16岁 C、14岁 D、18岁 题目:关于人力资源管理环境的辨识,变化小且数量大的是? 答案: A、高度不确定性的环境 B、中低不确…

【渝粤题库】广东开放大学 会展项目实践 形成性考核

选择题 题目:会展行业是一个()的服务行业。 答案: A、行业精英型 B、知识含量小 C、劳动密集型 D、劳动稀疏型 题目:会展业具有()和社会效益。 答案: A、集聚效应 B、文化效益 C、生…

python string 方法,python字符串的方法与操作大全

一:字符串的方法与操作*注意:首字母为l的为从左边操作,为r的方法为从右边操作1.__contains__()判断是否包含判断指定字符或字符串是否包含在一个字符串内,返回值为true或者false运行结果:TrueTrueFalse作用和in相似运行结果&#…

探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)

最近引起我注意的一个有趣且充满希望的开源项目是Spline ,它是由Absa维护的Apache Spark的数据沿袭跟踪和可视化工具。 该项目由两部分组成:一个在驱动程序上工作的Scala库,该驱动程序通过分析Spark执行计划来捕获数据沿袭,并提供…

【渝粤题库】广东开放大学 商务翻译实务 形成性考核

选择题 题目:IX. 选择正确的翻译。(每题1分) 4) 司马相如 答案: A、Si MaXiangru B、Si Maxiangru C、Sima Xiangru D、Simaxiang Ru 题目:IX. 选择正确的翻译。(每题1分) 5) 文树安 答案&…

php入门速成(2),PHP入门速成(1)

PHP简介PHP是一种用于创建动态WEB页面的服务端脚本语言。如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访…

【渝粤题库】广东开放大学 婚姻家庭法 形成性考核

选择题 题目:婚姻家庭的本质属性是( )。 答案: A、自然属性 B、自然属性与社会属性的结合 C、社会属性 D、以上都不对 题目:王某已婚,因工作关系离开老家,一人长期在甲地工作,在工作…

【渝粤题库】广东开放大学 建筑力学与结构 1形成性考核

题目:平面平行力系,取一刚体作为研究对象,最多可求()个未知量。 题目:二力平衡是作用在()个物体上的一对等值、反向、共线的力。 题目:梁在C点作用一力,当力偶…

JDK 12附带紧凑数字格式

JDK 12 Early Access Build 24引入了对紧凑数字格式的支持 。 JDK-8188147(紧凑数字格式支持)CSR的“摘要”是简单的句子,“添加了对JDK中紧凑/短数字格式的支持。” 相同的CSR还提供了详细的“解决方案”部分,该背景提供了为每个…