我正在尝试在Spring3 Web App中找到更好的方法来访问beanFactory。现在我设置了一个config.xml文件,其中包含我的系统将要使用的所有服务,在控制器中我提供了一行代码,如:
private static XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml"));
在每个控制器中..有谁知道有更好的方法吗?
答案 0 :(得分:4)
如果您正在使用Spring MVC,可能您已经在web.xml中定义了一个servlet来处理请求,例如:
<servlet>
<description></description>
<display-name>dispatcher</display-name>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
在这种情况下,你的web-inf目录中应该有一个名为dispatcher-servlet.xml的Spring配置文件。将bean定义放在那里,它们将被定义并在servlet启动时可用。
编辑:
从Spring引用的第3.2.2.1节导入一个bean配置文件到另一个:
<beans>
<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>
<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>
</beans>
在控制器中自动装配bean示例:
@Controller
public class MyController {
@Autowired
private MyBeanClass myBeanName;
...
}