Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果解析bean时存在歧义,Spring会抛出异常吗_Java_Spring_Dependency Injection_Autowired_Spring Java Config - Fatal编程技术网

Java 如果解析bean时存在歧义,Spring会抛出异常吗

Java 如果解析bean时存在歧义,Spring会抛出异常吗,java,spring,dependency-injection,autowired,spring-java-config,Java,Spring,Dependency Injection,Autowired,Spring Java Config,当存在多个具有相同类型的bean时,我可以让Spring抛出异常吗?当前的行为似乎是注入null您需要将@Qualifier注释与@Annotated一起使用,以解决具有相同类型的不同bean之间的歧义。要限定的参数是bean的名称,它是根据用@bean注释的方法的名称自动设置的 @Autowired public RobotController (@Qualifier("gundam") RobotEngine robotEngine) 使用@bean(name=“myName”)或@bea

当存在多个具有相同类型的bean时,我可以让Spring抛出异常吗?当前的行为似乎是注入
null

您需要将
@Qualifier
注释与
@Annotated
一起使用,以解决具有相同类型的不同bean之间的歧义。要限定的参数是bean的名称,它是根据用
@bean
注释的方法的名称自动设置的

@Autowired public RobotController (@Qualifier("gundam") RobotEngine robotEngine)
使用
@bean(name=“myName”)
@bean@qualifier(“myName”)
声明bean时,还可以设置自定义名称或限定符。如果没有指定限定符,则可以使用注释
@Primary
将其中一个bean设置为“默认”。您还可以创建从限定符继承的自定义注释,使代码更加美观


阅读,特别是部分。

您需要使用
@限定符
注释和
@注释
来解决具有相同类型的不同bean之间的歧义。要限定的参数是bean的名称,它是根据用
@bean
注释的方法的名称自动设置的

@Autowired public RobotController (@Qualifier("gundam") RobotEngine robotEngine)
使用
@bean(name=“myName”)
@bean@qualifier(“myName”)
声明bean时,还可以设置自定义名称或限定符。如果没有指定限定符,则可以使用注释
@Primary
将其中一个bean设置为“默认”。您还可以创建从限定符继承的自定义注释,使代码更加美观


阅读,特别是部分。

您应该会得到一个错误,是的

发件人:

容器中的多个bean定义可能与要自动连接的setter方法或构造函数参数指定的类型匹配。对于数组、集合或映射,这不一定是问题。但是,对于期望单个值的依赖项,这种模糊性不是任意解决的。如果没有唯一的bean定义可用,将引发异常

您应该得到一个运行时异常,错误如下:

原因:org.springframework.beans.factory.nouniquebeandDefinitionException:未定义类型为[…]的限定bean:应为单个匹配bean,但找到2:


你应该得到一个错误,是的

发件人:

容器中的多个bean定义可能与要自动连接的setter方法或构造函数参数指定的类型匹配。对于数组、集合或映射,这不一定是问题。但是,对于期望单个值的依赖项,这种模糊性不是任意解决的。如果没有唯一的bean定义可用,将引发异常

您应该得到一个运行时异常,错误如下:

原因:org.springframework.beans.factory.nouniquebeandDefinitionException:未定义类型为[…]的限定bean:应为单个匹配bean,但找到2:


当我运行代码时:我得到的
null移动量为1000最后一步:1000
它不能为null,如果无法确定要注入哪个bean,您将得到一个异常。如果字段为
null
则没有进行注入,基本上您有一个不同的错误。您到底在哪里得到null?当我运行该代码时:我得到这个
null移动量为1000最后移动量:1000
它不能为null,如果无法确定要注入哪个bean,您将得到一个异常。如果字段为
null
则没有进行注入,基本上您有一个不同的错误。实际上,我试图得到模糊错误。但是当我运行时,我没有得到任何错误。但是我在
name
moveRange
中得到空值。如果Spring在我的代码中检测到歧义,它会抛出一个错误,对吗?@fanjavaid-Ugh,学会更好地陈述你的问题。你应该问“当存在多个相同类型的bean时,我能让Spring抛出异常吗?”哦,对不起,我太担心我当前的结果而不是预期的结果。实际上我试图得到模糊性错误。但是当我运行时,我没有得到任何错误。但是我在
name
moveRange
中得到空值。如果Spring在我的代码中检测到歧义,它会抛出一个错误,对吗?@fanjavaid-Ugh,学会更好地陈述你的问题。您应该问“当存在多个相同类型的bean时,我能让Spring抛出异常吗?”哦,对不起,我太担心我当前的结果而不是预期的结果。