Spring MVC 3.0.5.RELEASE从控制器获取bean而不进行扫描

时间:2016-07-08 12:06:15

标签: spring spring-mvc spring-ioc

我已经定义了这个bean:

@org.springframework.stereotype.Service(value = "deviceService")
public class DeviceServiceImpl implements DeviceService {
...
}

和此配置文件

<?xml version='1.0' encoding='utf-8'?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
   <bean name="/hello" class="com.tdk.DeviceController"></bean>
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>
</beans>

有没有办法在不扫描的情况下从控制器获取 deviceService bean?

1 个答案:

答案 0 :(得分:0)

没有组件扫描deviceService将永远不会在应用程序上下文中加载,并且您无法注入一个甚至不存在的bean。

您已经有一个dispatcher-servlet.xml,因此您可以使用基于xml的方法来定义deviceService bean。

<bean name="deviceService" class="com.*.DeviceServiceImpl"></bean>

然后为您的控制器使用属性注入

<bean name="/hello" class="com.tdk.DeviceController">
<property name="deviceService" ref="deviceService" />
</bean>

希望,这会有所帮助。