2017-05-19 9 views
0

私は以下のクラスを持っている:@ImportResourceアノテーションを使用してApplicationContextへの参照を取得しますか?

@SpringBootApplication 
@ImportResource("classpath:path-to-application-context.xml") 
public class SocketMain extends SpringBootServletInitializer { 
    public static void main(String [] args) { 
    // ... 
    } 
} 

私は私が私の定義された豆の1を取得することができますので、私のmain機能でアプリケーションコンテキストへのアクセスを取得したいです。私はあなたが静的変数をautowireすることはできませんので、私はautowireすることはできません。 @ImportResourceアノテーションで読み込まれたapplicationContextへの参照を取得する方法はありますか?

私のフォールバックがちょうどそうようmainでのApplicationContextをロードすることです:

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("path-to-application-context.xml");` 

しかし、私はそれを2回ロードする必要はありません。

ありがとうございます!

答えて

1

これは、Springでアプリケーションコンテキストを取得してBeanを取得する方法です。これはあなたの主な機能

ApplicationContext ctx = SpringApplication.run(SocketMain.class, args); 
SomeClass sc = ctx.getBean(SomeClass.class); 
sc.testRun(); 

あなたはまた、@Autowiredでコンテキストを取得することができるはずで配置する必要があります。

@Autowired 
private ApplicationContext context; 
関連する問題