春のブートWebプロジェクトでapplication.propertiesから@Valueアノテーションを使用して値を取得したいとします。私はapplication.properties内の変数がちょうどその場で読み込まれていると思ったので、私は@Valueアノテーションを使うことができると思っていました。しかし、@Valueアノテーションだけを書くと、それは動作しません。春の起動時にapplication.propertiesからプロパティを取得する
私はapplication.poperties
google.recaptcha.site-key=???
でプロパティを持っていると私は値をロードしたかったので、私は以下のようにコード化されました。
@Controller
@RequestMapping("/member")
public class MemberController extends BaseController{
@Value("#{google.recaptcha.site-key}")
public String recaptchaSiteKey;
}
私はコードをコンパイルするとエラーが返されます。
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'google' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public?
at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:226) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:81) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:51) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.ast.OpMinus.getValueInternal(OpMinus.java:98) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:121) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:262) ~[spring-expression-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:161) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
... 28 common frames omitted
プロパティ名が「google.XXX」で始まっているため、Googleではオブジェクトを解決できません。
この問題を解決するにはどうすればよいですか?
ありがとうございました:)それは#と$ – PLAYMAKER