Jestem całkiem nowy na wiosnę, więc przepraszam, jeśli to głupie pytanie. Podczas próby uruchomienia programu pojawia się następujący błąd: java.lang.IllegalArgumentException: Could not resolve placeholder 'appclient' in string value [${appclient}]
. Błąd jest generowany, gdy następujący kod jest wykonywany:Wiosna Nie można rozwiązać zastępczyni
package ca.virology.lib2.common.config.spring.properties;
import ca.virology.lib2.config.spring.PropertiesConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
@Configuration
@Import({PropertiesConfig.class})
@PropertySource("${appclient}")
public class AppClientProperties {
private static final Logger log = LoggerFactory.getLogger(AppClientProperties.class);
{
//this initializer block will execute when an instance of this class is created by Spring
log.info("Loading AppClientProperties");
}
@Value("${appclient.port:}")
private int appClientPort;
@Value("${appclient.host:}")
private String appClientHost;
public int getAppClientPort() {
return appClientPort;
}
public String getAppClientHost() {
return appClientHost;
}
}
Plik właściwość o nazwie appclient.properties
istnieje w folderze zasobów z informacjami dla hosta i portu. Nie jestem pewien, gdzie jest zdefiniowany "${appclient}"
, jeśli jest w ogóle. Może to nawet nie jest zdefiniowane i to powoduje problem. Czy muszę zmienić "${appclient}"
na coś podobnego do "{classpath:/appclient.properties}"
lub czy brakuje mi czegoś innego?
Można odwoływać się do właściwości PropertySource przy użyciu classpath na pewno: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/PropertySource.html –
Tak naprawdę próbowałem uruchomić ten program, nazwij go "B" w innym programie o nazwie "A". Podobno po uruchomieniu programu B pojedynczo otrzymuje on wartość '$ {appclient}' jako argument programu; jednak tak się nie stało, gdy próbowałem uruchomić B z A i spowodowałem błąd, który otrzymywałem. – Brkk