我试图在Spring引导环境中设置clamav病毒扫描程序。所以我想在一个属性文件clamav.properties中设置主机和端口,这个文件位于我的resources目录以及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
任何想法?
以及你如何使用ping?你使用'@ Autowired'版本还是像'new ClamAvClient()。ping()'? – varren
DOH !!!我正在使用新的ClamAvClient()这可能是问题。 – mmaceachran
是啊,你应该使用带'applicationContext.getBean();'或'@ Autowired'注解的自动装版。刚刚测试过您提供的代码,并且它工作正常 – varren