SpringBoot - BeanDefinitionOverrideException:无效的 bean 定义

2023-12-31

我正在尝试使用 Spring Boot 在本地设置 DynamoDB。最初,我的设置正常运行,并且能够通过存储库写入/保存到 DynamoDB。从那时起,我添加了更多类来构建我的应用程序。现在,当我尝试启动我的应用程序时,出现以下异常:

org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'agentRepository' defined in null: Cannot register bean definition [Root bean: class [org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] for bean 'agentRepository': There is already [Root bean: class [org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] bound.

我已经广泛搜索了SO和互联网,但没有任何有用的解决方案。该错误消息也具有误导性。

我的项目具有以下层次结构

ai.test.as
  - as
      - agent
          - business
          - intent
          - exception
          - Agent.java
          - AgentDTO.java
          - AgentRespository.java
          - AgentController.java
          - AgentService.java
          - AgentServiceImpl.java
  - config
     - DynamoDBConfig.java

DynamoDBConfig.java

package ai.test.as.config;

import ai.test.as.agent.AgentRepository;
import ai.test.as.agent.intent.template.TemplateRepository;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import org.socialsignin.spring.data.dynamodb.repository.config.EnableDynamoDBRepositories;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableDynamoDBRepositories(basePackageClasses = {AgentRepository.class})
public class DynamoDBConfig
{
    @Value("${aws.dynamodb.endpoint}")
    private String dynamoDBEndpoint;

    @Value("${aws.auth.accesskey}")
    private String awsAccessKey;

    @Value("${aws.auth.secretkey}")
    private String awsSecretKey;

    @Bean
    public AmazonDynamoDB amazonDynamoDB()
    {
        AmazonDynamoDB dynamoDB = new AmazonDynamoDBClient(getAwsCredentials());
        dynamoDB.setEndpoint(dynamoDBEndpoint);

        return dynamoDB;
    }

    @Bean
    public AWSCredentials getAwsCredentials()
    {
        return new BasicAWSCredentials(awsAccessKey, awsSecretKey);
    }
}

AgentRepository.java

package ai.test.as.agent;

import ai.test.as.agent.Agent;
import org.socialsignin.spring.data.dynamodb.repository.EnableScan;
import org.springframework.data.repository.CrudRepository;

@EnableScan
public interface AgentRepository extends CrudRepository<Agent, String>
{
}

AgentController.java(使用AgentRepository的地方)

@RestController
@RequestMapping(value = "/v1/agents")
public class AgentController
{
    @Autowired
    private AgentRepository agentRepository;

    @RequestMapping(value = "/test", method = RequestMethod.POST)
    public void test()
    {
        Agent agent = new Agent();
        agent.setAgentNumber("123456");
        agent.setId(1);

        agentRepository.save(agent);
    }
}

Spring 建议如下:> The bean 'agentRepository', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

什么是null意思是这里?是因为我的应用程序配置有问题吗?另外怎么可能已经注册了呢?

请给我一些指示,因为我对下一步很困惑。


从 Spring Boot 2.1 开始必须启用 Bean 重写,

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes

Bean 重写

默认情况下禁用 Bean 覆盖,以防止 Bean 被意外覆盖。如果您依赖重写,则需要将 spring.main.allow-bean-definition-overriding 设置为 true。

Set

spring.main.allow-bean-definition-overriding=true

or yml,

spring:
   main:
     allow-bean-definition-overriding: true

再次启用覆盖。

Edit,

Bean 重写基于 bean 的名称而不是其类型。例如

@Bean
public ClassA class(){
   return new ClassA();
}

@Bean
public ClassB class(){
   return new ClassB();
}

在 > 2.1 中会导致此错误,默认情况下 bean 名称取自方法名称。重命名该方法或添加name归因于Bean注释将是一个有效的修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot - BeanDefinitionOverrideException:无效的 bean 定义 的相关文章

  • 在 Mysql 上使用 EntityManager JPA 运行脚本

    我正在尝试运行脚本 sql 文件 但由于我尝试了多种方法 因此出现多个错误 这是我的主要 sql 脚本 INSERT INTO Unity VALUES 11 paq 0 2013 04 15 11 41 37 Admin Paquete
  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • 不同类型的数组

    是否可以有一个包含两种不同类型数据的数组 我想要一个包含双精度型和字符串的数组 我尝试过 ArrayList
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • Integer.parseInt("0x1F60A") 以 NumberformatException 结束

    我尝试从数据库中获取长字符串内的表情符号代码 格式如下 0x1F60A 所以我可以访问代码 但它将是String 起初 我尝试通过执行以下操作来转换变量tv setText beforeEmo getEmijoByUnicode int e
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • 当客户端关闭连接时,Spring StreamingResponseBody 请求线程未清理

    我在控制器中有一个端点 它返回一个StreamingResponseBody 用于向客户端发送文件 其代码大致如下 RestController RequestMapping value api public class Controlle
  • Spring 规范 - 谓词的联合

    我需要一个函数来过滤参数并构建查询 我有 4 个参数 因此如果我尝试为每个条件实现查询 我将不得不编写 16 2 4 实施 这不是一个好主意 我尝试通过界面改进我的代码Specification来自 Spring Data JPA 但我无法
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 读取电子邮件的文本文件转换为 Javamail MimeMessage

    我有一个电子邮件原始来源的文本文件 直接从 gmail 复制 如果您单击 查看原始文件 您就会看到它 我想读入该文件并将其转换为 MimeMessage 如果您好奇为什么 我设置了 JavaMaildir 并且需要用电子邮件填充它的收件箱以
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • Java中HashMap和ArrayList的区别?

    在爪哇 ArrayList and HashMap被用作集合 但我不明白我们应该在哪些情况下使用ArrayList以及使用时间HashMap 他们两者之间的主要区别是什么 您具体询问的是 ArrayList 和 HashMap 但我认为要完
  • 将 Apache Camel 执行器指标发送到 Prometheus

    我正在尝试转发 添加 Actuator Camel 指标 actuator camelroutes 将交换 交易数量等指标 发送到 Prometheus Actuator 端点 有没有办法让我配置 Camel 将这些指标添加到 Promet

随机推荐

  • 尝试在前台使用enableForegroundDispatch忽略所有NFC意图

    我试图让我的应用程序在运行时忽略 nfc 命令 它是由带有 Android 应用程序记录 AAR 的 NFC 标签启动的 我不希望它在已经运行时能够通过该标签启动 尝试过小心翼翼地跟随别人examples https stackoverfl
  • 我可以使用 LINQ 更优雅地重写它吗?

    我有一个double 我想将其转换为 CSV 字符串格式 即一行中的每一行 以及用逗号分隔的行元素 我是这样写的 public static string ToCSV double array return String Join Envi
  • Gitlab CI 不执行 npm 脚本

    我尝试制作一个在 gitlab runner 上运行的 CI 脚本 我想要的很简单 首先应执行 npm install 命令来获取所有必需的 npm 包 之后npm test and npm run build应该被执行 The gitbl
  • Laravel 查询生成器:选择除少数字段之外的所有字段

    使用 Laravel 查询构建器 可以轻松选择字段或使用别名字段 gt select 如何选择除少数字段之外的所有字段 例如 我希望永远不归还id我的记录回到前端 http laravel com docs 4 2 eloquent htt
  • GDB 跳过了我的代码!

    所以 我定义了一个类 DataLoggingSystemStateReceiver DataLoggingSystemStateReceiver initializer list stuff other functions here 主要是
  • 我应该将 HTML 存储为 nvarchar(MAX) 还是 ntext?

    我不知道如果我选择 nvarchar MAX 是否有字符数限制 而且我也不确定我需要多少个字符 这里使用的标准数据类型是什么 我正在使用 SQL Server 2008 R2 The ntext类型已被弃用 如下所示text and ima
  • Selenium IDE 找不到元素

    我正在尝试在 Selenium IDE 中运行录制的测试用例 问题是 当我尝试执行整个测试用例时 Selenium 停止它 没有在页面上找到元素 问题是我可以执行测试用例的单个步骤 我认为 Selenium 会在加载新页面之前尝试查找元素
  • 应用 CSS text-shadow 时是否可以将多个元素视为一个文本?

    应用 CSS 时text shadow对于文本内容部分包裹在子元素中的元素 包裹文本后面的字母将在包裹元素上投射阴影 如以下示例所示 font family sans serif font weight 900 shadow color f
  • 如何正确停止定时器?

    var timer time Timer func A timer Stop cancel old timer go B new timer func B timer time NewTimer 100 time Millisecond s
  • 检查 ASP.NET Core Identity 中具有 Authorize 属性的多个策略之一

    我在 ASP NET Core 应用程序中设置了标准身份验证系统 用户 角色 RoleClaims 充当权限 在 Startup cs 中 我为每个角色和每个权限创建一个策略 假设这将使我的视图具有充分的灵活性 能够说我希望此按钮显示用户是
  • 生成的 WSDL 中的空肥皂操作

    我正在尝试使用 JAX WS 从我的 Java 代码生成 WSDL 一切似乎都工作正常 除了我在 WSDL 中的操作时 soapAction 仍然为空 这是我的代码 WebService public class MyClass publi
  • maven antrun ssh 或 scp 隐藏输出

    我想使用 ant 在 mvn 中运行来运行 ssh 和 scp 命令 ssh 和 scp 命令正确运行 并且在下一阶段中声明的插件 运行 但是 ssh scp 之后的所有命令的输出 不会写入任何输出 问题是什么 这是我的 pom xml
  • 特定活动开放后销毁所有先前的活动[重复]

    这个问题在这里已经有答案了 这是场景 Activity A gt Activity B gt Activity C gt Activity D 我想在之后销毁 Activity A B 和 CActivity D已推出 有什么想法吗 Int
  • python 和 ip 范围?

    例如 我有一个文件 城市和 IP 地址 City1 31 25 87 0 31 25 87 15 City2 31 47 224 0 31 47 255 255 如何通过ip地址知道城市名称 http www icir org robin
  • 如何解密V FoxPro加密的字符串

    我有一个用 Visual Fox Pro 构建的程序 它可以在数据库中读取和写入信息 但该信息是加密的 我有源代码 所以我有钥匙 加密和解密的密钥相同 用于加密 解密 但我无法获得用于加密 解密的算法 我需要这个来使用 C 创建一个新程序
  • 如果盖子关闭,如何以编程方式从睡眠中唤醒?

    我想以编程方式将系统从睡眠状态唤醒 有什么办法可以做到这一点吗 我已阅读以下链接 http developer apple com mac library qa qa2004 qa1340 html http developer apple
  • 通过python脚本调整excel中单元格的宽度和高度(以毫米/厘米为单位)

    我试图寻找它 但没有找到 是否可以使用 openpyxl 或 xlwt 模块以 mm 或 cm 尺寸调整 excel 中单元格的宽度和高度 如果是 那么有人可以指出我的脚本命令吗 多谢 使用 Openpyxl 设置列宽 setting wi
  • 如何在 nHibernate 中部分投影具有多个字段的子对象

    我有以下 nHibernate 查询 它根据课程 ID 选择课程 然后返回选定的字段对于初始获取的课程对象 查询执行没有问题 MatchMode option CourseItem courseAlias null TeacherItem
  • 如何读取txt文件C++并将它们分成几列

    这是我第一次用 c Visual studio 2010 编写代码 我有我想要实现的逻辑 但我无法将其写入代码 查看了许多样品 但没有发现任何结果 基本上我有一个制表符分隔的 txt 文件 我想读取它并将数据放入字符串 字符串数组中 问题是
  • SpringBoot - BeanDefinitionOverrideException:无效的 bean 定义

    我正在尝试使用 Spring Boot 在本地设置 DynamoDB 最初 我的设置正常运行 并且能够通过存储库写入 保存到 DynamoDB 从那时起 我添加了更多类来构建我的应用程序 现在 当我尝试启动我的应用程序时 出现以下异常 or