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

未从属性文件获取整数值

法烨华
2023-03-14

我想从application.properties文件中定义的键中读取整数值。这是我的属性文件。

spring.rabbitmq.port=31111

代码如下:

public Object getPortProperty() {
    Properties properties = new Properties();
    try {
        File file = ResourceUtils.getFile("classpath:application.properties");
        InputStream in = new FileInputStream(file);
        properties.load(in);
    } catch (IOException e) {

    }
    return (Integer) properties.get("spring.rabbitmq.port");

}

@Autowired
public UnitAmqpRestController(RabbitTemplate rabbitTemplate) throws IOException, TimeoutException {
    this.rabbitTemplate = rabbitTemplate;
    rabbitTemplate.setReplyTimeout(15_000L);
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost(getHostProperty());
    factory.setPort((Integer) getPortProperty());
    connection = factory.newConnection();
    channel = connection.createChannel();
}

代码有问题的行是:

factory.setPort((Integer) getPortProperty());

共有1个答案

文华美
2023-03-14

您的代码抛出了NullPointerException,而您有一个空的Catch块。至少,您应该在那里添加一些日志来查看发生了什么。

而且,您使用的是Spring,应该很少需要手动解析application.properties;它会自动加载到应用程序环境中。

因此您可以使用@value将其绑定到一个局部变量(主机属性与此相同):

@Value("${spring.rabbitmq.port}")
private int mqPort;

@Value("${spring.rabbitmq.host}")
private String mqHost;

@Autowired
public UnitAmqpRestController(RabbitTemplate rabbitTemplate) throws IOException, TimeoutException {
    this.rabbitTemplate = rabbitTemplate;
    rabbitTemplate.setReplyTimeout(15_000L);
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost(mqHost);
    factory.setPort(mqPort);
    connection = factory.newConnection();
    channel = connection.createChannel();
}
 类似资料:
  • 我有一个java代码可以将这些值追加到我的属性文件中 我的属性文件将有如下条目。 key1=主机、端口、orcl、用户名、密码 key2=主机、端口、orcl、用户名、密码 key3=主机、端口、orcl、用户名、密码等… 这些key1、key2和key3是连接名。 在进入属性文件之前,首先我必须检查该文件是否提供了连接名条目。我的意思是,如果用户再次使用key1或key2或key3连接名输入值,

  • 我试图从Woocommerce的Wordpress网站上获取产品数据。我使用下面的代码获取特定类别产品的名称和缩略图。 这在获取“工具”类别中产品的名称和图像方面效果很好,但我想获取每个产品的权重。 产品重量在WordPress仪表板中设置为产品属性。 如何获取产品的这些数据?我似乎找不到访问这些的功能。

  • 问题内容: 我从属性文件中获取了int,float,boolean和string。一切都已加载到属性中。目前,我正在解析值,因为我知道特定键的期望值。 设置这些常量值的更好方法是什么,如果我不知道什么可能是键的原始值数据类型。 属性文件。messassge.properties Constant.java 问题答案: 如果您拥有一类配置值(例如您的类),并且想要从配置(属性)文件中加载所有值,则可

  • 我昨天让它工作,然后我做了一些事情,现在我一直试图修复它几个小时,我只是无法让它工作了。 我有一个包含

  • 我在数据库中具有与数据库连接相关的属性。xml文件。我想在一个表中使用相同的值。属性文件。是否可以从中获取值。xml文件,并设置为。财产? --谢谢 使用loadFromXML时发生异常 线程“main”java中出现异常。util。InvalidPropertiesFormatException:组织。xml。萨克斯。SAXException:无效的系统标识符:http://www.hibern