Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 手动拉动SpringBean的最佳方法?_Java_Spring_Tomcat_Javabeans - Fatal编程技术网

Java 手动拉动SpringBean的最佳方法?

Java 手动拉动SpringBean的最佳方法?,java,spring,tomcat,javabeans,Java,Spring,Tomcat,Javabeans,如何手动拉动SpringBean?我有一个相当大的web应用程序,在给定的服务中,临时对象需要访问特定于机器的bean(数据库连接信息)。因为应用程序在集群中运行,所以这个临时对象(可以在服务器之间跳转)始终需要从当前spring上下文和服务器获取正确的连接 那么,手动从spring中提取bean的最佳方法是什么呢?您可以让服务实现,这样您就可以访问ApplicationContext本身,并可以直接在其上调用getBean()。您可以让服务实现,这样您就可以访问ApplicationConte

如何手动拉动SpringBean?我有一个相当大的web应用程序,在给定的服务中,临时对象需要访问特定于机器的bean(数据库连接信息)。因为应用程序在集群中运行,所以这个临时对象(可以在服务器之间跳转)始终需要从当前spring上下文和服务器获取正确的连接


那么,手动从spring中提取bean的最佳方法是什么呢?

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

您可以让服务实现,这样您就可以访问ApplicationContext本身,并可以调用getBean()直接在上面

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

Object o = ctx.getBean("dataSource");
当然,您可以像这样投射bean:

DataSource d = (DataSource) ctx.getBean("dataSource");
当然,您可以像这样投射bean:

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

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

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

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

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

我使用的是域模型,但它是一种服务/域的混合,满足了我的特定需求。有没有办法在不影响我的深层、深层服务层的情况下获得ServletContext?我在域模型中,但它是一种服务/域的混合体,适合我的特定需求。有没有办法在不影响我的深层、深层服务层的情况下获取ServletContext?这将是不必要的网络流量。所有信息都在服务器上已知,其中域对象isJNDI与网络无关。。。它基本上是以一个已知的名称存储一个对象,你可以在服务器上查找它。所有信息都在服务器上已知,其中域对象isJNDI与网络无关。。。它基本上是以一个已知的名称存储一个对象,你可以在服务器上查找。下面是一个我所说的示例-虽然这并没有真正的帮助,因为当域对象移动到另一台服务器时,信息会发生变化。是的,它会。。。当bean“移动”到另一台服务器时,它将在那里重新创建。一旦它被创建,它就会被注入另一个bean。阅读关于Spring和AOPAL的文章,尽管这并没有真正的帮助,因为当域对象移动到另一台服务器时,信息会发生变化。。。当bean“移动”到另一台服务器时,它将在那里重新创建。一旦它被创建,它就会被注入另一个bean。了解Spring和AOP