手动拉弹簧豆的最佳方法是什么?

时间:2009-08-11 21:15:07

标签: java spring tomcat javabeans

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

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

4 个答案:

答案 0 :(得分:2)

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

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

当然你可以像这样施放豆子:

DataSource d = (DataSource) ctx.getBean("dataSource");

答案 1 :(得分:1)

您可以拥有自己的服务实现ApplicationContextAware,这样您就可以访问ApplicationContext本身,并可以直接在其上调用getBean()。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

需要获取数据库连接信息吗?如何在JNDI and look it up in the bean中存储连接?假设您的服务器提供它。