How to read variable or concatenate one property in @Value annotation of spring boot
I have one POJO class which read properties from application.yaml file in spring boot. Here I need to set default value to groupId(to get when not given) based on combination of topic value and another string.
private String topic;
@Value("${topic}_test")
private String groupId;
I tried this but getting error as
Could not resolve placeholder 'topic' in value "${topic}_test
I create a variable and tried to access it in @Value but failed.
Please provide any suggestion to access this
spring-boot annotations
add a comment |
I have one POJO class which read properties from application.yaml file in spring boot. Here I need to set default value to groupId(to get when not given) based on combination of topic value and another string.
private String topic;
@Value("${topic}_test")
private String groupId;
I tried this but getting error as
Could not resolve placeholder 'topic' in value "${topic}_test
I create a variable and tried to access it in @Value but failed.
Please provide any suggestion to access this
spring-boot annotations
Do you have @ConfigurationProperties at class? For more info see e.g. baeldung.com/configuration-properties-in-spring-boot
– h0nzan
Nov 21 '18 at 21:36
Yes i have given that annotation
– esha ingle
Nov 22 '18 at 4:39
add a comment |
I have one POJO class which read properties from application.yaml file in spring boot. Here I need to set default value to groupId(to get when not given) based on combination of topic value and another string.
private String topic;
@Value("${topic}_test")
private String groupId;
I tried this but getting error as
Could not resolve placeholder 'topic' in value "${topic}_test
I create a variable and tried to access it in @Value but failed.
Please provide any suggestion to access this
spring-boot annotations
I have one POJO class which read properties from application.yaml file in spring boot. Here I need to set default value to groupId(to get when not given) based on combination of topic value and another string.
private String topic;
@Value("${topic}_test")
private String groupId;
I tried this but getting error as
Could not resolve placeholder 'topic' in value "${topic}_test
I create a variable and tried to access it in @Value but failed.
Please provide any suggestion to access this
spring-boot annotations
spring-boot annotations
edited Nov 21 '18 at 13:41
Alien
5,47331127
5,47331127
asked Nov 21 '18 at 13:34
esha ingleesha ingle
163
163
Do you have @ConfigurationProperties at class? For more info see e.g. baeldung.com/configuration-properties-in-spring-boot
– h0nzan
Nov 21 '18 at 21:36
Yes i have given that annotation
– esha ingle
Nov 22 '18 at 4:39
add a comment |
Do you have @ConfigurationProperties at class? For more info see e.g. baeldung.com/configuration-properties-in-spring-boot
– h0nzan
Nov 21 '18 at 21:36
Yes i have given that annotation
– esha ingle
Nov 22 '18 at 4:39
Do you have @ConfigurationProperties at class? For more info see e.g. baeldung.com/configuration-properties-in-spring-boot
– h0nzan
Nov 21 '18 at 21:36
Do you have @ConfigurationProperties at class? For more info see e.g. baeldung.com/configuration-properties-in-spring-boot
– h0nzan
Nov 21 '18 at 21:36
Yes i have given that annotation
– esha ingle
Nov 22 '18 at 4:39
Yes i have given that annotation
– esha ingle
Nov 22 '18 at 4:39
add a comment |
1 Answer
1
active
oldest
votes
Default value
Let's say you have a property like this in your application.yml file
topic: myFavoriteTopic
The code below will assign the value "myFavoriteTopic" to variable groupId
if Spring is able to load the property with key topic
from application.yml. If it's not, it will assign the default value "my default topic".
@Value("${topic:my default topic}")
private String groupId;
To set null
as the default value, use:
@Value("${topic:#{null}}")
To use an empty String as the default value, use:
@Value("${topic:}")
Get key name from a variable
In your code snippet you have a String topic
variable. For the Spring framework, this variable is not used in the property value retrieval. When you do @Value("${topic}")
, "topic" is the name of the key that Spring will look for in application.yml. The name of the key cannot be determined at runtime based on the value of a Java variable. The reason is that properties can be loaded before the class code executes.
_test suffix
Also in your code snippet, you use @Value("${topic}_test")
. What Spring does in this case is to concatenate "_test" to the value retrieved for property key topic. In my first example, groupId
would be assigned "myFavoriteTopic_test".
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53413234%2fhow-to-read-variable-or-concatenate-one-property-in-value-annotation-of-spring%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Default value
Let's say you have a property like this in your application.yml file
topic: myFavoriteTopic
The code below will assign the value "myFavoriteTopic" to variable groupId
if Spring is able to load the property with key topic
from application.yml. If it's not, it will assign the default value "my default topic".
@Value("${topic:my default topic}")
private String groupId;
To set null
as the default value, use:
@Value("${topic:#{null}}")
To use an empty String as the default value, use:
@Value("${topic:}")
Get key name from a variable
In your code snippet you have a String topic
variable. For the Spring framework, this variable is not used in the property value retrieval. When you do @Value("${topic}")
, "topic" is the name of the key that Spring will look for in application.yml. The name of the key cannot be determined at runtime based on the value of a Java variable. The reason is that properties can be loaded before the class code executes.
_test suffix
Also in your code snippet, you use @Value("${topic}_test")
. What Spring does in this case is to concatenate "_test" to the value retrieved for property key topic. In my first example, groupId
would be assigned "myFavoriteTopic_test".
add a comment |
Default value
Let's say you have a property like this in your application.yml file
topic: myFavoriteTopic
The code below will assign the value "myFavoriteTopic" to variable groupId
if Spring is able to load the property with key topic
from application.yml. If it's not, it will assign the default value "my default topic".
@Value("${topic:my default topic}")
private String groupId;
To set null
as the default value, use:
@Value("${topic:#{null}}")
To use an empty String as the default value, use:
@Value("${topic:}")
Get key name from a variable
In your code snippet you have a String topic
variable. For the Spring framework, this variable is not used in the property value retrieval. When you do @Value("${topic}")
, "topic" is the name of the key that Spring will look for in application.yml. The name of the key cannot be determined at runtime based on the value of a Java variable. The reason is that properties can be loaded before the class code executes.
_test suffix
Also in your code snippet, you use @Value("${topic}_test")
. What Spring does in this case is to concatenate "_test" to the value retrieved for property key topic. In my first example, groupId
would be assigned "myFavoriteTopic_test".
add a comment |
Default value
Let's say you have a property like this in your application.yml file
topic: myFavoriteTopic
The code below will assign the value "myFavoriteTopic" to variable groupId
if Spring is able to load the property with key topic
from application.yml. If it's not, it will assign the default value "my default topic".
@Value("${topic:my default topic}")
private String groupId;
To set null
as the default value, use:
@Value("${topic:#{null}}")
To use an empty String as the default value, use:
@Value("${topic:}")
Get key name from a variable
In your code snippet you have a String topic
variable. For the Spring framework, this variable is not used in the property value retrieval. When you do @Value("${topic}")
, "topic" is the name of the key that Spring will look for in application.yml. The name of the key cannot be determined at runtime based on the value of a Java variable. The reason is that properties can be loaded before the class code executes.
_test suffix
Also in your code snippet, you use @Value("${topic}_test")
. What Spring does in this case is to concatenate "_test" to the value retrieved for property key topic. In my first example, groupId
would be assigned "myFavoriteTopic_test".
Default value
Let's say you have a property like this in your application.yml file
topic: myFavoriteTopic
The code below will assign the value "myFavoriteTopic" to variable groupId
if Spring is able to load the property with key topic
from application.yml. If it's not, it will assign the default value "my default topic".
@Value("${topic:my default topic}")
private String groupId;
To set null
as the default value, use:
@Value("${topic:#{null}}")
To use an empty String as the default value, use:
@Value("${topic:}")
Get key name from a variable
In your code snippet you have a String topic
variable. For the Spring framework, this variable is not used in the property value retrieval. When you do @Value("${topic}")
, "topic" is the name of the key that Spring will look for in application.yml. The name of the key cannot be determined at runtime based on the value of a Java variable. The reason is that properties can be loaded before the class code executes.
_test suffix
Also in your code snippet, you use @Value("${topic}_test")
. What Spring does in this case is to concatenate "_test" to the value retrieved for property key topic. In my first example, groupId
would be assigned "myFavoriteTopic_test".
answered Feb 27 at 18:11
Paulo MersonPaulo Merson
5,53443338
5,53443338
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53413234%2fhow-to-read-variable-or-concatenate-one-property-in-value-annotation-of-spring%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Do you have @ConfigurationProperties at class? For more info see e.g. baeldung.com/configuration-properties-in-spring-boot
– h0nzan
Nov 21 '18 at 21:36
Yes i have given that annotation
– esha ingle
Nov 22 '18 at 4:39