我試圖在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