繁体   English   中英

未设置Spring Boot配置属性

[英]Spring Boot Configuration Properties not being set

我正在尝试在Spring Boot环境中设置clamav病毒扫描程序。 因此,我想在属性文件clamav.properties中设置主机和端口,该文件位于我的资源目录中,以及application.properties文件。 它看起来像这样:

clamav.host=localhost
clamav.port=3310
clamav.timeout=1000

我有这个课:

@ConfigurationProperties("clamav.properties")
public class ClamAvClient {

static final Logger logger = LoggerFactory.getLogger(ClamAvClient.class);

@Value("${clamav.host}")
private String clamHost;

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

@Value("${clamav.timeout}")
private int clamTimeout;

 public boolean ping() throws IOException {
     logger.debug("Host:"+clamHost+" Port:"+clamPort);
     blah.....
 }

private static byte[] asBytes(String s) {
    return s.getBytes(StandardCharsets.US_ASCII);
}   

public String getClamHost() {
    return clamHost;
}

public void setClamHost(String clamHost) {
    this.clamHost = clamHost;
}

public int getClamPort() {
    return clamPort;
}

public void setClamPort(int clamPort) {
    this.clamPort = clamPort;
}

public int getClamTimeout() {
    return clamTimeout;
}

public void setClamTimeout(int clamTimeout) {
    this.clamTimeout = clamTimeout;
}

}

它没有连接,在日志中我得到以下信息:

2017-09-23 20:39:45.947 DEBUG 28857 --- [http-nio-8080-exec-2] xxx.ClamAvClient  : Host:null Port:0

因此,这些值显然没有设置。 我究竟做错了什么? 我正在使用spring-boot-starter-web的托管版本,我的Eclipse说的是1.4.3-RELEASE

有任何想法吗?

使用@ConfigurationProperties使用配置处理器将属性组映射到类。

@ConfigurationProperties使用@Value看起来不正确。

您需要将属性映射到该类的所有操作是:

@Configuration
@ConfigurationProperties(prefix="clamav")
public class ClamAvClient {

static final Logger logger = LoggerFactory.getLogger(ClamAvClient.class);


private String host;


private int port;


private int timeout;

//getters and setters

}

prefix ="clamav"与属性文件中的前缀匹配。

host,port,timeout匹配类的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM