ApplicationContext.xmlファイルをロードするSpringApplicationの例を誰かが提供できますか?
Springの例 (Gradleベース)を使用して、GWTRPCアプリケーションをRESTfulWebサービスに移動しようとしています。 applicationContext.xmlがありますが、SpringApplicationにロードさせる方法がわかりません。を介して手動でロード
ApplicationContext context = new ClassPathXmlApplicationContext(args);
結果は空のコンテキストになります。 ...そしてそれがうまくいったとしても、それはから返されたものとは別のものになるでしょう
SpringApplication.run(Application.class, args);
または、SpringApplication.runによって作成されたアプリコンテキストに外部Beanを取り込む方法はありますか?
クラスパスのファイルを使用する場合は、いつでも次のように実行できます。
@SpringBootApplication
@ImportResource("classpath:applicationContext.xml")
public class ExampleApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(ExampleApplication.class, args);
}
}
@ImportResource
アノテーションのclasspath
文字列に注意してください。
@ImportResource
を使用して、XML構成ファイルをSpringBootアプリケーションにインポートできます。例えば:
@SpringBootApplication
@ImportResource("applicationContext.xml")
public class ExampleApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(ExampleApplication.class, args);
}
}
アノテーションは、(クラス上で)(mainメソッドを持っている)それ(以下の呼び出しを持っている)である必要はありません:
SpringApplication.run(Application.class、args);
(あなたの場合、私が言っているのは、@ ImportResourceがクラスにある必要はないということです)
パブリッククラスExampleApplication {}
.........
あなたは別のクラスを持つことができます
@Configuration
@ImportResource({"classpath*:applicationContext.xml"})
public class XmlConfiguration {
}
または明確にするために
@Configuration
@ImportResource({"classpath*:applicationContext.xml"})
public class MyWhateverClassToProveTheImportResourceAnnotationCanBeElsewhere {
}
上記はこの記事で言及されています
http://www.springboottutorial.com/spring-boot-Java-xml-context-configuration
.........
ボーナス:
そして、「SpringApplication.run」が無効なメソッドだと思ったかもしれない場合に備えて.....そうではありません。
これを行うこともできます:
public static void main(String[] args) {
org.springframework.context.ConfigurableApplicationContext applicationContext = SpringApplication.run(ExampleApplication.class, args);
String[] beanNames = applicationContext.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String name : beanNames) {
System.out.println(name);
}
これはまた、多くの、多くの、多くのすべてに微妙にあなたを手がかりにします(私は「多く」について言及しましたか?)...春のブーツがもたらす依存関係。あなたが話す人によっては、これは良いことです(他の誰かすべてのニースが私のために理解した)または邪悪なこと(おっと、それは私が制御できない多くの依存関係です)。
ハッシュタグ:時々LookBehindTheCurtain