2017-10-18 8 views
0

私はSpringBootを使用し、次のようにqueues.propertiesファイルからPOJOを移入したプロジェクト(これは、依存関係として使用される)持っている:親にこの依存関係をドラッグすることで通常のSpringアプリケーションでドラッグされて実行されるSpring起動注釈を取得する方法は?

@Component 
@PropertySource({"classpath:queues.properties"}) 
@ConfigurationProperties("queue") 
public class QueuesConfig { 

private String messagingBrokerXml; 
private String messagingBrokerJolokia; 
private String messagingBrokerApi; 
private List<QueuesConfig.QueueModel> queues = new ArrayList(); 

public QueuesConfig() { 
} 

public String getMessagingBrokerXml() { 
    return this.messagingBrokerXml; 
} 

... 

をそのクラスパスに "queues.properties"ファイルを持つSpringBootプロジェクトでは、QueuesConfigオブジェクトに適切な値が設定されます。

私は現在、Plain Springプロジェクトでこの依存関係を使用して同じ動作を実現しようとしています。 PropertySourceアノテーションが "実行"され、queues.propertiesファイルがStandardServletEnvironment(propertySourceListのエントリ)の一部であることを確認できます。

"ConfigurationPropertiesBindingPostProcessor" Beanが登録されておらず(singletonObjectsには含まれていない)、POJOを生成するコードが実行されていないことです。

これに対応する方法はありますか?

多くの感謝!

+0

だから、何基本的に言っています*私はSpring Boot *を使用せずにSpring Bootのこの機能を使用したいと思っています* ...あなたはそれがうまくいくと思いますか?あなたのクラスパス上にSpring Boot jarが必要で、Spring Bootがあなたのために何をするのか手動で行います。あなたは何を得たのですか?しかし、クラスパス上の複雑さと追加の瓶。 –

答えて

0

あなたの親春@Configurationクラスでこれを追加してください:詳細については

@EnableConfigurationProperties(QueuesConfig.class) 

は春ブーツのドキュメントのこのセクションをお読みください。これは、テキストのいくつかの画面ですが、@SpringBootApplicationといくつかのハイレベルの魔法を使用するので、それはそれ;-)

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties

価値はおそらくそれはあなたのテストアプリでよく働い:)

+0

私はSpringBootプロジェクトでこのアノテーションを使用する必要があると思います –

+0

返信いただきありがとうございます!しかし、それは春のブート注釈です。私は普通の春のアプリに春のブートをインポートしたくないです。 –

+0

私の現在の回避策は、親のアプリケーションコンテキストで "ConfigurationPropertiesBindingPostProcessor" Beanを手動で構成することです。しかし、私はこれを正しい方法とは考えていません。 –

関連する問題