簡體   English   中英

無法使用java配置訪問屬性文件中的所有屬性?

[英]Unable to access all the properties from properties file with java configuration?

使用Java配置(@ConfigurationProperties)我只能訪問單個字屬性,如果我想訪問帶后綴的屬性(例如:server.port,server.address)我需要將服務器添加到配置中( @ConfigurationProperties(“server”) )。

我需要屬性文件中的所有屬性如何訪問它?

//application.properties
spring.application.name=com-example
server.port=8080
minimum=200
maximum=20000
//Configuration.java

package com.example;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties("server")
public class Configuration {
    private int minimum;
    private int maximum;
    private int port;

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    protected Configuration() {

    }

    public Configuration(int minimum, int maximum, int port) {
        super();
        this.minimum = minimum;
        this.maximum = maximum;
        this.port = port;
    }

    public int getMinimum() {
        return minimum;
    }

    public void setMinimum(int minimum) {
        this.minimum = minimum;
    }

    public int getMaximum() {
        return maximum;
    }

    public void setMaximum(int maximum) {
        this.maximum = maximum;
    }

}

//ExampleController.java

package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ExampleController {

    @Autowired
    private Configuration configuration;

    @GetMapping("/properties")
    public Configuration getConfiguration() {
        return new Configuration(configuration.getMinimum(), configuration.getMaximum(),
                configuration.getPort());
    }
}

嘗試這個:

@Component
@Configuration
public class Configuration {
    @Value("${minimum}")
    private int minimum;

    @Value("${maximum}")
    private int maximum;

    @Value("${server.port}")
    private int port;

    //Methods
}

根據Configuration它可能是名稱沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM