当前位置: 首页 > 面试题库 >

Spring无法解析占位符

莫承运
2023-03-14
问题内容

我对春天还很陌生,所以请问这是一个愚蠢的问题。当我尝试启动程序时,出现以下错误:java.lang.IllegalArgumentException: Could not resolve placeholder 'appclient' in string value [${appclient}]。执行以下代码时,将引发错误:

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;
}
}

appclient.properties资源文件夹中存在一个名为的属性文件,其中包含主机和端口的信息。我不确定在哪里"${appclient}"定义(如果有的话)。也许甚至没有定义,这就是问题所在。我需要将其更改"${appclient}"为类似的东西"{classpath:/appclient.properties}"还是缺少其他内容?


问题答案:

您没有正确读取属性文件。propertySource应该将参数传递为:file:appclient.propertiesclasspath:appclient.properties。将注释更改为:

@PropertySource(value={"classpath:appclient.properties"})

但是我不知道您的PropertiesConfig文件包含什么,因为您也正在导入文件。理想情况下,@PropertySource应将注释保存在此处。



 类似资料:
  • 我有个例外 我也尝试过使用JarLoader和PropertiesLauncher,但运气并不好。 我确实在application.properties中定义了属性sysm.client.api.path,但为了更好地衡量,我还将它作为-d参数-dsysm.client.api.path=my-path添加到命令行中。 注意:IntelliJ没有将其作为a-jar运行;相反,它在一个大型类路径命令

  • 问题内容: 我有我的配置: 我得到错误 我知道这可能缺少属性文件,但是我在类路径中恰好有它。有什么不见了? 我的web.xml: 问题答案: 你的应用程序中可能有多个。尝试在超类的方法上设置一个断点,看看在应用程序启动时是否多次调用了该断点。如果不止一个,则可能需要查看配置属性,以便你的应用程序可以正常启动。

  • 我想对Spring Boot进行JUnit测试,如下所示: 应用程序est.java这样 我的POM是这样的: 当我运行测试时,我得到了以下错误信息 但是当我以普通Java应用程序的形式运行这个应用程序时 它工作得很好! 它怎么了?我应该如何使用Spring Boot进行jUnit测试?非常感谢!

  • 问题内容: 我要对Spring-boot进行Junit测试,如下所示: 和ApplicationTest.java这样 和我的POM像这样: 运行测试时,出现以下错误信息 但是当我将此应用程序作为普通Java应用程序运行时 运行良好! 它出什么问题了 ?我应该如何通过Spring-boot进行junit测试?非常感谢! 问题答案: 您需要添加 @PropertySource(“ classpath

  • 我有一个Spring启动应用程序。当我在Spring工具套装4中单击“运行”按钮时,它可以正常工作。 但是当我以“maven install”运行时,我收到了错误消息: 我的应用属性的内容: 如果我将其更改为 它工作得很好。但我想从用户那里获取envVersionNum,它存储在.bash_profile(export envVersion Num=1.1.1)中。 pom.xml的内容: 家庭控

  • 和ApplicationTest.java 我的POM是这样的: 当我运行测试时,我得到以下错误信息 但当我将此应用程序作为普通Java应用程序运行时 它工作得很好! 怎么了?我应该如何用Spring-Boot参加junit测试?多谢!