当前位置: 首页 > 知识库问答 >
问题:

在SpringBoot中,如何将yml部分作为java加载。util。性质

柳宏深
2023-03-14

在我的spring boot应用程序中,我有以下配置:

server:
  host: a.com
  port: 5922
  enable-log: true

我想把上面的内容理解为java。util。属性。我试着把下面的课:

@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--

我不知道为什么会这样。我唯一想到的是,server下面的配置参数基本上是扁平字符串。有没有办法把它们读作属性


共有2个答案

司寇昱
2023-03-14

抱歉,您不能将它们加载到java中。util。属性带有注释@ConfigurationProperties

你需要创建这个:

@Component
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
  private String host;
  private String port;
  private String enableLog;
  // ... Getter/setter
}
刘棋
2023-03-14
@Bean({"kaptchaProperties"})
@ConfigurationProperties(prefix = "custom.kaptcha")
public Properties getProperties() {
    return new Properties();
}
 类似资料:
  • 问题内容: 我在JBoss 4.0.2中部署了一个servlet作为战争。我有一个已部署应用程序的属性文件。我应该把这个文件放在哪里?在jboss server \ default \ conf文件夹中的conf目录下?如何以可移植的方式加载该属性文件? 问题答案: 要加载在该属性文件 可移植 的方式,最好的办法是把它放在Web应用程序(的类路径或者以JAR下或下或在应用服务器类路径中,如果你想能

  • 我试图得到一个经过训练的卷积神经网络(CNN)来分类一个新的图像(作为BufferedImage对象)。 CNN模型是使用DeepLearning4j中提供的示例(https://github.com/eclipse/deeplearning4J-examples/blob/master/dl4J-examples/src/main/java/org/DeepLearning4j/examples

  • 问题内容: 我的要求很简单,但是我需要做很多事情,因此我正在寻找可靠的解决方案。 是否有一个很好的轻量级库,用于将URL分解为Java中的组成部分?我指的是主机名,查询字符串等。 问题答案: 看一看java.net.URL。它具有完全符合您要执行的操作的方法。 主机名: 查询字符串: Fragment / ref / anchor: 路径:

  • 问题内容: 在Rails / jquery应用程序上创建ruby时,页面的一部分很耗时。 我想更改页面的加载方式,以便大部分页面立即加载,并为占时的部分预留一个占位符以异步加载,并在完成时将其插入到带有ajax / jquery的页面中。 我现在所拥有的(简体): app / views / sample / show.html.erb: 而Partial将使用@org的某些部分来生成一些内容(点

  • 现有一个springboot项目,通过扫描二维码查询信息,比如一棵树,扫描二维码后可以看到他相关的信息。但这个项目不止有树类型,还有道路,某个物品。所以将项目分模块开发,核心模块作为一个jar包,复制提供基础服务如数据导入导出。各类型构建成单独的jar。部署时需要那种类型就加载对应的jar。这样做是为了满足不同客户需求。 尝试: java -Xbootclasspath/a:file:./libs

  • 我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部