Spring Boot中如何获取文件属性的内容?

2024-01-06

正如标题,我的自定义属性:

#app settings
my.chassisNum=10

java代码:

@PropertySource("classpath:appconf.properties")
@ConfigurationProperties(prefix = "my" )
@Component
public class AppConfig {

    private String chassisNum;

    public String getChassisNum() {
        return this.chassisNum;
    }

    public void setChassisNum(String chassisNum) {
        this.chassisNum = chassisNum;
    }
}

当 Spring Boot 启动完成时,我得到的“chassisNum”值为 10。 当我在其他地方得到它时,当 spring-boot 未启动完成时,它得到“null”

@Component
public class CreateBaseFolder {

    private final Logger logger = LogManager.getLogger(CreateBaseFolder.class);
    private File f; 
    @Autowired
    AppConfig appconf;

    public CreateBaseFolder() {

        System.out.println(appconf.getChassisNum());


    } 

我尝试了很多方法来获取它的值,但都是错误的。例如:implements InitializingBean,@DependsOn ....


假设你有application.properties内容:

foo.bar=Jerry

您将使用注释@Value

package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class GetPropertiesBean {

    private final String foo;

    @Autowired
    public GetPropertiesBean(@Value("${foo.bar}") String foo) {
        this.foo = foo;
        System.out.println(foo);
    }

}

当然,我们需要一个切入点

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

然后将类应用程序作为 Spring Boot 应用程序运行,组件自动加载,您将在控制台屏幕上看到结果

Jerry

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot中如何获取文件属性的内容? 的相关文章

随机推荐

  • JavaScript 文件传输 SSH

    我目前正在开发一个基于浏览器的项目 这是我第一次使用 JavaScript HTML 和 CSS 之前没有使用这些语言的经验 基本上该项目涉及以下内容 1 允许用户通过以下代码上传 csv文件
  • 如何在不卸载的情况下使用多个版本的Python

    我面临着一个独特的处境 虽然微不足道 但却很痛苦 我需要使用 Python 2 6 6 因为 NLTK 没有移植到 Python 3 这是我可以收集到的 在不同的代码 同时工作 中 有一个集合计数器函数仅在 Python 3 中可用 但在
  • 类型安全 c++11 枚举类标志的模板

    我正在尝试使用模板创建类型安全的 C 标志 我也想区分一下a旗帜和旗帜s 零个 一个或多个标志 下面的解决方案效果很好 除了EnumFlag
  • Griffon 不创建 Eclipse .project 和 .classpath 文件

    狮鹫 0 9 2 beta 3 执行 griffon create app 演示控制台 后 找不到 project 因此无法将其导入到eclipse sts 中 但文档说 Griffon 自动为您创建 Eclipse project 和 c
  • Intellij IDEA 2018.1 Jdk10无法运行测试

    无法使用 IDEA 2018 1 JDK 10 运行测试 它说 错误 6 1 java source 8 不支持模块 使用 source 9 或更高版本以启用模块 我使用菜单将语言级别提高到 10 文件 gt 项目结构 gt 项目 gt 项
  • ADXL345 与 ESP32 I2C 垃圾值问题

    我已根据以下教程使用 I2C 接口将 ESP32 与 ADXL345 连接起来Tutorial http www esp32learning com code esp32 and adxl345 sensor example php 但是
  • 如何启动jboss 7.1.1服务器并在jboss 7.1.1中部署项目

    我使用 JBoss 7 服务器 因此我下载了 JBoss 7 1 1 版本并解压缩此 zip 文件 然后我转到 bin 文件夹并双击standalone bat但新的 cmd 窗口会在 2 3 秒内打开和关闭 如果我使用 cmd 运行它 我
  • PHP 未定义索引错误

    我是 PHP 新手 我收到此错误 注意 var www test modifyform php 上未定义索引 productid 32号线 注意 未定义索引 在线 var www test modifyform php 中的名称 33 注意
  • Android 广播接收器无法在后台运行

    我有 2 部不同 Android 版本的 Android 手机 第一个手机运行 Kitkat 第二个手机运行 Nougat 我目前正在使用以下代码 5 或 7 小时后 Android 应用程序不再检测事件 有人可以帮我吗 package c
  • OpenShift、python 2.7 和带有 htaccess 的静态文件

    我正在尝试配置 apache 来为 URL 提供静态文件 例如site com img bla jpg Python墨盒 烧瓶 我知道预配置的别名是什么wsg static目录 所以我们可以使用site com static bla jpg
  • 在 pandas/matplotlib/seaborn python 中使用自定义配色方案

    我想对各种绘图使用自定义配色方案 但无法使其工作 对这些绘图使用 seaborn 和 或 matplob pandas flatui 9b59b6 3498db 95a5a6 e74c3c 34495e 2ecc71 ax sns viol
  • 将 XIB 中的按钮链接到 Storyboard 中的视图控制器

    我有一个 XIB 视图控制器 里面有一个按钮 我还有一个 storboard 视图控制器 我想知道是否有一种方法可以将 xib 视图控制器中的按钮链接到故事板视图控制器 简短的回答 不 不使用界面生成器 不过你可以用代码来完成 实例化两个视
  • 将 MongoDB 中的 _id 类型更改为整数是否不好?

    MongoDB 使用 ObjectId 类型作为 id 如果我将 id 设置为递增整数会不会很糟糕 With this https github com goncalossilva mongoid sequence宝石 如果你有兴趣 不 它
  • 在控制台中,有没有办法在按 Enter 时阻止 java 开始新行?

    例如 如果用户输入 7 4 我希望它输出 7 4 28 代替 7 4 28 我已经找了几个小时了 还没有找到任何东西 感谢您提前提供的任何帮助 public class RecursiveMultiplication public stat
  • 在 shell 脚本中将 stdout 和 stderr 通过管道传输到两个不同的进程?

    我有一个管道正在做 command1 command2 因此 command1 的 stdout 转到 command2 而 command1 的 stderr 转到终端 或 shell 的 stdout 所在的任何地方 如何将 comma
  • 清除 Magento 中的 URL 键

    我已经为添加了自己产品的店主安装了 magento 不幸的是他不理解 URl 关键字段 当他复制产品时 每个产品现在都具有相同的 URL 并且编号递增 product 1234 html 下一个为 product 1235 html 由于他
  • 无法在 Windows 上安装 Aptana Studio 3.6

    我想在 Windows 下使用 Aptana Studio 进行 Rails 开发 我目前有不同的开发工具和 ide 已启动并正在运行 如 git ruby jdk 我也想安装 Aptana Studio 但我不能 下载并运行安装程序后 它
  • 使用 if 语句对数字进行分类的循环[重复]

    这个问题在这里已经有答案了 我正在创建的循环遇到问题 我的意图是循环将查看值落在哪里并给该值另一个名称 这是我正在尝试做的一个例子 a lt rnorm 10 0 1 b lt rnorm 10 0 1 testing lt data fr
  • 在 Perl 中更改哈希值的引用

    我遇到了这个并找不到答案 我想看看是否可以 更改 哈希的引用 换句话说 我有一个散列和一个返回散列引用的函数 我想让我的散列指向此引用指定的内存位置 而不是复制它指向的散列的内容 代码看起来像这样 hash h gt hashref 我的明
  • Spring Boot中如何获取文件属性的内容?

    正如标题 我的自定义属性 app settings my chassisNum 10 java代码 PropertySource classpath appconf properties ConfigurationProperties pr