我正在尝试找到一种更好的方法来访问 Spring3 Web App 中的 beanFactory。现在我设置了一个 config.xml 文件,其中包含我的系统将要使用的所有服务,并在控制器中添加了一行代码,例如:
private static XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml"));
在每个控制器中..有没有人知道更好的方法来做到这一点?
我正在尝试找到一种更好的方法来访问 Spring3 Web App 中的 beanFactory。现在我设置了一个 config.xml 文件,其中包含我的系统将要使用的所有服务,并在控制器中添加了一行代码,例如:
private static XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("config.xml"));
在每个控制器中..有没有人知道更好的方法来做到这一点?
如果您使用的是 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;
...
}