Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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 春天';XML中的s autowire属性重写bean的@Autowired属性是如何自动连接的?_Java_Spring_Spring Annotations - Fatal编程技术网

Java 春天';XML中的s autowire属性重写bean的@Autowired属性是如何自动连接的?

Java 春天';XML中的s autowire属性重写bean的@Autowired属性是如何自动连接的?,java,spring,spring-annotations,Java,Spring,Spring Annotations,情况似乎并非如此。我曾经有过这样的想法:XML配置意味着覆盖注释。但是当我在XML配置中设置autowire=“no”时,bean的@Autowired注释属性仍然有效。我不再确定XML autowire是否与@Autowired有关。在我看来,这完全违反直觉 有人能给我指一份说明这一点的文档吗 下面是我的例子: <bean class="com.example.Tester"></bean> <bean class="com.example.ClassToTest

情况似乎并非如此。我曾经有过这样的想法:XML配置意味着覆盖注释。但是当我在XML配置中设置autowire=“no”时,bean的@Autowired注释属性仍然有效。我不再确定XML autowire是否与@Autowired有关。在我看来,这完全违反直觉

有人能给我指一份说明这一点的文档吗

下面是我的例子:

<bean class="com.example.Tester"></bean>
<bean class="com.example.ClassToTest" autowire="no"></bean>

public class Tester
{
    @Autowired
    ClassToTest testSubject;
}

public class ClassToTest
{
    @Autowired // I want this not to get autowired without removing this annotation
    private OtherDependency;
}

公共类测试员
{
@自动连线
类测试科目;
}
公共类类测试
{
@自动连线//我不希望在不删除此批注的情况下自动连线
私人依赖;
}
autowire=“no”意味着我们必须使用基于XML的配置或
@autowire
显式连接依赖项,这是默认设置。 通过xml配置或注释自动连接意味着使用给定的策略隐式映射依赖项。
有关更多详细信息,请参阅

@arikg是的,我打算为我的测试用例做这件事。然后我认为您需要看看这个开放问题:显示您的bean类和配置。您可能正在定义另一个bean,而不是覆盖您原来的bean。@arikg我刚才看到了。这是不幸的。也许真的是这样;这无法完成。那么这是否意味着在XML中设置autowire不会覆盖注释?如果你想一想,它实际上是有道理的@Autowire不允许我们指定自动连线策略,因此可能
@Autowire
与XML中的Autowire有完全不同的意图。这完全违反直觉。我接受这个答案。你的第二句话含糊不清,但你的第一句话更准确。