我有一个带有 struts2.2 和 spring 3.1 的应用程序,我想禁用 spring autowire。我用谷歌搜索了一下,发现我必须放在<beans>
tab default-autowire="no"
,但这似乎不起作用。
然后我发现我可以为这样的每个<bean>
标签声明这个 : <bean autowire="no">
,但这似乎也不起作用。
当我启用弹簧调试记录器时,我可以看到很多这样的消息:
信息:调试 [http-thread-pool-8080(3)] (ConstructorResolver.java:739) - 通过构造函数从 bean 名称“com.common.actions.PopupAction”按类型自动装配到名为“intermedService”的 bean
applicationConfig.xml 中的相应条目是:
<beans default-autowire="no"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<bean id="PopupAction" scope="prototype" class="com.common.actions.PopupAction" autowire="no">
<constructor-arg type="com.common.services.abs.iIntermedService" ref="intermedService"/>
<constructor-arg type="com.common.services.abs.iLocationService" ref="locationService"/>
<constructor-arg type="com.common.services.abs.iUserService" ref="userService"/>
<constructor-arg type="com.common.services.abs.iPhoneService" ref="phoneService"/>
</bean>
只要我在这里手动定义了依赖项并且我定义了,为什么spring会尝试自动连接这个动作auto-wire="no"
?
或者此消息告诉我,接线是通过构造函数按类型进行的(如我所愿),“按类型自动装配”意味着从 4 个参数中,他将 intermedService 与我的变量中间服务按类型匹配(而不是按顺序或其他) ?