0

我如何手动拉一个弹簧豆?我有一个相当大的 Web 应用程序,在给定的服务中,瞬态对象需要访问特定于机器的 bean(数据库连接信息)。由于应用程序在集群中运行,所以这个瞬态对象(可以在服务器之间反弹)总是需要从当前的 spring 上下文和服务器中获取正确的连接。

那么,手动将豆子从弹簧中拉出的最佳方法是什么?

4

4 回答 4

2
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());

Object o = ctx.getBean("dataSource");

当然,您可以像这样投射 bean:

DataSource d = (DataSource) ctx.getBean("dataSource");
于 2009-08-11T21:47:58.983 回答
1

我建议将您尝试在“创建时”拉入域对象的对象注入。这意味着每当您的域对象在特定服务器上创建时,它将被注入正确的(特定于机器的)bean。

于 2009-08-12T00:18:47.153 回答
1

您可以让您的服务实现ApplicationContextAware以便您可以访问 ApplicationContext 本身并可以直接在其上调用 getBean() 。

于 2009-08-11T21:45:41.903 回答
0

它需要获取数据库连接信息吗?将连接存储在JNDI 中并在 bean 中查找如何?假设您的服务器提供它。

于 2009-08-12T00:33:50.253 回答