如何从另一个类加载spring bean

时间:2016-07-30 12:40:00

标签: spring dependency-injection

我使用context-param

在web.xml中加载了“myspring.xml”

在“myspring.xml”中我编写了bean,我将参数传递给构造函数参数

<bean id="abc" class="com.Hello">
     <constructor-arg ref="dataSource"/>
     <constructor-arg value= “dummy data”/>
</bean>
Hello bean中的

我将构造函数初始化为

  public class Hello{
     public Hello(datasource,dummydata){
     }

     public void methodFromHelloBean(){
       // use here dummydata from constructor
     }
 }

这里,'Hello'bean在服务器启动时初始化,正如我在web.xml中定义的那样,它运行正常。

我的问题是 -

我正致力于exisitng applciation。 我想在我的另一个类里面调用methodFromHelloBean()来说MyService类。 我如何在MyService类中调用该方法。

我知道的一种方法是使用applicationContext。 但是在我现有的应用程序中,我还没有看到使用应用程序上下文路径加载任何bean。

还有什么方法,我如何从'MyService'类初始化'Hello'bean。 在初始化时,我是否需要将参数传递给构造函数?如何。

提前致谢。

1 个答案:

答案 0 :(得分:2)

假设我们有MyService一个类,其bean实例使用来自methodFromHelloBean abc bean的方法Hello

public class Hello {

    private boolean cacheInitialized;

    public void methodFromHelloBean(Object param) {
        if (!cacheInitialized) {
             initializeCache(param);
             cacheInitialized = true;
        }
        // do whatever you please with cache.
    }

    private void initializeCache(Object param) {
        // TODO
    }

}

public class MyService {

     @Autowired
     private Hello abc;

     public void someMethod() {
          // determine which parameters to pass to abc
          Object param = ...
          abc.methodFromHelloBean(param);
     }

}