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

提取Spring Boot用户属性

公胤运
2023-03-14

嘿,伙计们,我一直在尝试确定Spring boot中的哪些属性是由用户配置的,而不是Spring自动配置。我可以列出所有属性,但我不确定如何只获取用户声明的属性。

//此方法获取Spring环境中的所有属性

public Properties getSpringEnvironmentProperties() {
    Properties props = new Properties();
    MutablePropertySources propSrcs = ((AbstractEnvironment) env).getPropertySources();
    StreamSupport.stream(propSrcs.spliterator(), false)
        .filter(ps -> ps instanceof EnumerablePropertySource)
        .map(ps -> ((EnumerablePropertySource) ps).getPropertyNames())
        .flatMap(Arrays::<String>stream)
        .forEach(propName -> props.setProperty(propName, env.getProperty(propName)));
    return props;
  }

有没有办法只获取用户在如下文件中声明的属性:application。房产?

共有1个答案

商华藏
2023-03-14

您可以使用@ConfigurationProperties作为复杂属性文件,步骤如下:

步骤1:创建存储这些属性的application.properties

#App
app.menus[0].label=Home
app.menus[0].path=/
app.menus[1].label=Java Core
app.menus[1].path=/javacore
app.menus[2].label=Spring
app.menus[2].path=/spring

步骤2:声明java属性类

@ConfigurationProperties("app")
public class AppProperties {

    private List<Menu> menus = new ArrayList<Menu>();
    //do stuff
}

第3步:向服务中注入属性

private AppProperties app;

您可以从post Spring Boot配置属性示例中找到工作示例

希望这有帮助!

 类似资料:
  • 目前,我在为springboot项目获取mysql数据时遇到了一个问题: 编辑:Application.Properties 我能够使/test/welcome映射工作,因此我相信我对服务和控制器的实现是正确的。所以我想知道我是不是在访问存储库中的数据库时犯了一个错误,还是应该使用JpaRepository而不是CrudRepository并使用显式查询? 编辑堆栈跟踪:org.springfra

  • 问题内容: 我试图在网页上的特定“输入”标签中提取单个“值”属性的内容。我使用以下代码: 我收到TypeError:列表索引必须是整数,而不是str 即使从Beautifulsoup文档中我了解到字符串在这里也不应该是一个问题…但是我没有专家,我可能会误解了。 问题答案: 返回所有找到的元素的列表,因此: 是一个列表(可能仅包含一个元素)。根据你的确切要求,你应该执行以下操作: 或使用仅返回一个(

  • 下面的示例将展示在将HTML String解析为Document对象后使用方法获取dom元素的属性。 语法 (Syntax) Document document = Jsoup.parse(html); Element link = document.select("a").first(); System.out.println("Href: " + link.attr("href")); 哪里

  • 如何使用Firebase获取用户名属性,我不知道如何获取用户名、电话号码等属性,我只知道如何获取用户名属性,但不知道用户名属性,也许你可以从下面的Firebase数据库中了解。 这是我的密码

  • 问题内容: 对于: 我如何获得“价值”? 引发错误。 问题答案: 这将找到名为的元素的第一个实例,并返回该属性的值。

  • 我使用的是。我有一个类似的类。我有一个的。 null