Java 在XML中按类型指定spring引用
假设我有以下课程:Java 在XML中按类型指定spring引用,java,spring,spring-bean,Java,Spring,Spring Bean,假设我有以下课程: @Service public class Foo { @Autowired private MySvcClass svc; } 如果我使用Spring的注释初始化,Spring将迭代它的所有bean,如果它有一个MySvcClass的实例,它将注入它。我不需要知道MySvcClass实例的名称,只需要知道它是MySvcClass的实例 如果使用XML而不利用注释,如何获得相同的结果 例如,通过xml定义可以如下所示: <bean id="f
@Service
public class Foo {
@Autowired
private MySvcClass svc;
}
如果我使用Spring的注释初始化,Spring将迭代它的所有bean,如果它有一个MySvcClass
的实例,它将注入它。我不需要知道MySvcClass
实例的名称,只需要知道它是MySvcClass
的实例
如果使用XML而不利用注释,如何获得相同的结果
例如,通过xml定义可以如下所示:
<bean id="foo" class="Foo">
<property name="svc" ref="idOfMySvcClass"/>
</bean>
但这需要我知道
MySvcClass
实例的名称。Spring有没有办法使用与上面相同的逻辑,我只指定类型,Spring就会找到我的实例?在xml中为bean元素添加autowire=“byType”属性。在xml中为bean元素添加autowire=“byType”属性。如果不需要知道bean名称,可以使用“autowiringbytype”
您的XML配置如下所示:
<bean id="foo" class="com.example.Foo" autowire="byType" />
<bean id="mySvcClass" class="com.example.MySvcClass" />
如果不需要知道bean名称,可以使用“按类型自动连接” 您的XML配置如下所示:
<bean id="foo" class="com.example.Foo" autowire="byType" />
<bean id="mySvcClass" class="com.example.MySvcClass" />
这样,所有依赖项都必须按类型连接,但是如果我只需要多个依赖项中的一个,那么所有依赖项都必须按类型连接,但是如果我只需要多个依赖项中的一个?