2012-09-01 63 views
0

我處於一種只有靜態方法的類(設計糟糕),並且在其中添加了一個新的字段,它將被初始化爲一個由Spring管理的bean。該字段將被其中一個靜態方法使用。用於ApplicationContext識別的替代

我發現我可以創建一個新的類,這將是上下文感知並從該類獲取bean。

class A implements ApplicationContextAware{ 

    static beanType givebean(){ 
    } 

    //Code to retrieve bean from application context  
} 

class B{ 

    static beanType bean; 

    static void method1(){ 
     bean = A.giveBean(); 
     //does stuffs 
    } 

    static void method2(){ 
    } 

} 


configuration file:: 
    <bean id="bean" class="X.X.X.X.beanType"/> 

我的問題是不是使用了ApplicationContextAware另一種是有不通過Spring管理類中使用一個bean的方法。我不反對使用Appcontextaware,但我想知道這是否是其他可能性來做到這一點。謝謝。

+1

雖然像WebApplicationContextUtils將從技術工作透視,這應該是重構的轉化爲非靜態方法。 –

+0

是的,確切地說。但這是一個遺留代碼,正在逐步淘汰。所以現在我正在做一個快速修復。 – maverik

回答