1. ホーム
  2. java

Spring @Valueがプロパティファイルの値に解決されない

2023-09-26 19:53:54

質問

以前、他のプロジェクトでこれを動作させたことがあり、同じことをやり直しているだけなのですが、なぜかうまくいきません。春の @Value はプロパティファイルから読み取るのではなく、文字通りの値を取っています。

AppConfig.java

@Component
public class AppConfig
{
    @Value("${key.value1}")
    private String value;

    public String getValue()
    {
        return value;
    }
}

applicationContext.xmlを参照してください。

<context:component-scan
    base-package="com.test.config" />
<context:annotation-config />

<bean id="appConfigProperties"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:appconfig.properties" />
</bean>

appconfig.properties

key.value1=test value 1

私のコントローラでは、どこに

@Autowired
private AppConfig appConfig;

アプリケーションは問題なく起動しますが

appConfig.getValue()

を返します。

${key.value1}

プロパティファイル内の値には解決しない。

感想は?

どのように解決するのですか?

問題は、私のapplicationContext.xmlとspring-servlet.xmlに問題があったため、それは豆の間のスコープの問題だった。

pedjaradenkovicが親切にも既存のリソースを教えてくれました。 Spring @Controller クラスの @Value アノテーションはプロパティファイル内の値として評価されない。 Spring 3.0.5ではプロパティから@Valueアノテーションが評価されない