としてYMLセクションをロードするために、私が設定している以下:私はjava.util.Properties
として上記を読みたいどのように私の春のブートアプリケーションでjava.util.Properties
server:
host: a.com
port: 5922
enable-log: true
を。私は、次のクラスを入れてみました:
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
private Properties serverProps;
// ... Getter/setter
}
ブート設定ファイルは次のようになります。
@Configuration
@ComponentScan("com.demo")
@EnableAspectJAutoProxy(proxyTargetClass = true)
@EnableConfigurationProperties({ServerConfig.class})
@Profile({"dev"})
public class TestAppConfiguration {
}
@EnableAutoConfiguration
@SpringBootApplication
public class TestAppInitializer {
public static void main(final String[] args) {
SpringApplication.run(TestAppInitializer.class, args);
}
}
ユニットテストクラス:
@SpringApplicationConfiguration(classes = {TestAppInitializer.class})
@ActiveProfiles("dev")
public class ServerConfigTest extends AbstractTestNGSpringContextTests {
@Autowired
private ServerConfig serverConfig;
@Test
public void printDetails() {
logger.debug("ServerConfig.properties --> {}", serverConfig.getProperties());
}
}
出力は ServerConfig.properties --> null
です。
なぜこのようなことが起こっているのかわかりません。唯一の考えは、私の考えでは、server
の下の設定パラメータは基本的にフラットな文字列です。 Properties
と読むことができますか?
。あなたはString/Integer/Booleanなどの単純な型のクラス変数にそれらを読むことができます。 –
こんにちは@Niranjan、あなたは直接Propertiesオブジェクトの値を設定する方法を見つけましたか?フィールドを作成してプロパティオブジェクトに追加することができます – Tatha