스프링 부트 환경에서 clamav 바이러스 스캐너를 설정하려고합니다. 따라서 application.properties 파일과 함께 my resources 디렉토리에있는 특성 파일 clamav.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의 관리 버전을 사용하고 있습니다. 1.4.3-RELEASE
어떤 아이디어?
그리고 어떻게 핑을 사용하고 있습니까? @ Autowired 버전이나'새로운 ClamAvClient() .ping()'과 같은 것을 사용하고 있습니까? – varren
DOH !!! 새 ClamAvClient()를 사용하고 있습니다. 아마도 문제 일 것입니다. – mmaceachran
예,'applicationContext.getBean();'또는'@ Autowired' 어노테이션으로 autowired 버전을 사용해야합니다. 제공된 코드를 테스트하고 올바르게 작동합니다. – varren