Nir*_*jan 6 java spring spring-boot
在我的spring boot应用程序中,我具有以下配置:
server:
host: a.com
port: 5922
enable-log: true
Run Code Online (Sandbox Code Playgroud)
我想将以上内容阅读为java.util.Properties
。我试着把以下课程:
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
private Properties serverProps;
// ... Getter/setter
}
Run Code Online (Sandbox Code Playgroud)
引导配置文件如下所示:
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试班:
@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());
}
}
Run Code Online (Sandbox Code Playgroud)
输出为
ServerConfig.properties --> null
。
我不确定为什么会这样。我想到的唯一想法是,下面的配置参数server
基本上是扁平字符串。我有什么办法可以将它们读为Properties
?
小智 5
@Bean({"kaptchaProperties"})
@ConfigurationProperties(prefix = "custom.kaptcha")
public Properties getProperties() {
return new Properties();
}
Run Code Online (Sandbox Code Playgroud)
AFAIK,您无法java.util.Properties
使用注释将它们加载到其中@ConfigurationProperties
。
你需要创建这个:
@Component
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
private String host;
private String port;
private String enableLog;
// ... Getter/setter
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |