How to get the property value in spring boot?











up vote
-1
down vote

favorite












I have property file in resource directory and able to access by using annotation like below



@Value("${key}")


provide that class use above annotation must use stereotype annotations like @component in class level for example like below



@Component
public class Test{

@Value("${key}")
private String key;
}


Question here is how to access the value for key from property file in Test class without using any stereotype annotations. Spring boot environment










share|improve this question






















  • Why do you need that? Either it's an integration test annotated with @RunWith(SpringRunner.class) or @SpringBootTest, in which case you can use the @Value annotation in the test class too, or it's a unit-test, and in that case you should emulate the value manually anyway.
    – Selindek
    Nov 15 at 15:48










  • no its not unit test. i have shared sample code above..at one scenario i need to have that property in class where i have not used sterotype annotation
    – basky
    Nov 15 at 15:54










  • Sorry, I misunderstood the question. But if you don't use stereotype annotations then it means that you create that bean/object manually somewhere. So you can inject the value into the creator bean with @Value and when you create a Test object in this bean you can set the value via a setter (or constructor)
    – Selindek
    Nov 15 at 15:58






  • 1




    static is evil :)
    – Selindek
    Nov 15 at 16:12






  • 1




    Create a MyProperties class instead annotated with @ConfigurationProperties and inject this property-bean into your service classes. And then you can access the individual properties via getters.
    – Selindek
    Nov 15 at 16:14















up vote
-1
down vote

favorite












I have property file in resource directory and able to access by using annotation like below



@Value("${key}")


provide that class use above annotation must use stereotype annotations like @component in class level for example like below



@Component
public class Test{

@Value("${key}")
private String key;
}


Question here is how to access the value for key from property file in Test class without using any stereotype annotations. Spring boot environment










share|improve this question






















  • Why do you need that? Either it's an integration test annotated with @RunWith(SpringRunner.class) or @SpringBootTest, in which case you can use the @Value annotation in the test class too, or it's a unit-test, and in that case you should emulate the value manually anyway.
    – Selindek
    Nov 15 at 15:48










  • no its not unit test. i have shared sample code above..at one scenario i need to have that property in class where i have not used sterotype annotation
    – basky
    Nov 15 at 15:54










  • Sorry, I misunderstood the question. But if you don't use stereotype annotations then it means that you create that bean/object manually somewhere. So you can inject the value into the creator bean with @Value and when you create a Test object in this bean you can set the value via a setter (or constructor)
    – Selindek
    Nov 15 at 15:58






  • 1




    static is evil :)
    – Selindek
    Nov 15 at 16:12






  • 1




    Create a MyProperties class instead annotated with @ConfigurationProperties and inject this property-bean into your service classes. And then you can access the individual properties via getters.
    – Selindek
    Nov 15 at 16:14













up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











I have property file in resource directory and able to access by using annotation like below



@Value("${key}")


provide that class use above annotation must use stereotype annotations like @component in class level for example like below



@Component
public class Test{

@Value("${key}")
private String key;
}


Question here is how to access the value for key from property file in Test class without using any stereotype annotations. Spring boot environment










share|improve this question













I have property file in resource directory and able to access by using annotation like below



@Value("${key}")


provide that class use above annotation must use stereotype annotations like @component in class level for example like below



@Component
public class Test{

@Value("${key}")
private String key;
}


Question here is how to access the value for key from property file in Test class without using any stereotype annotations. Spring boot environment







spring spring-boot spring-security spring-boot-admin






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 15 at 15:27









basky

406




406












  • Why do you need that? Either it's an integration test annotated with @RunWith(SpringRunner.class) or @SpringBootTest, in which case you can use the @Value annotation in the test class too, or it's a unit-test, and in that case you should emulate the value manually anyway.
    – Selindek
    Nov 15 at 15:48










  • no its not unit test. i have shared sample code above..at one scenario i need to have that property in class where i have not used sterotype annotation
    – basky
    Nov 15 at 15:54










  • Sorry, I misunderstood the question. But if you don't use stereotype annotations then it means that you create that bean/object manually somewhere. So you can inject the value into the creator bean with @Value and when you create a Test object in this bean you can set the value via a setter (or constructor)
    – Selindek
    Nov 15 at 15:58






  • 1




    static is evil :)
    – Selindek
    Nov 15 at 16:12






  • 1




    Create a MyProperties class instead annotated with @ConfigurationProperties and inject this property-bean into your service classes. And then you can access the individual properties via getters.
    – Selindek
    Nov 15 at 16:14


















  • Why do you need that? Either it's an integration test annotated with @RunWith(SpringRunner.class) or @SpringBootTest, in which case you can use the @Value annotation in the test class too, or it's a unit-test, and in that case you should emulate the value manually anyway.
    – Selindek
    Nov 15 at 15:48










  • no its not unit test. i have shared sample code above..at one scenario i need to have that property in class where i have not used sterotype annotation
    – basky
    Nov 15 at 15:54










  • Sorry, I misunderstood the question. But if you don't use stereotype annotations then it means that you create that bean/object manually somewhere. So you can inject the value into the creator bean with @Value and when you create a Test object in this bean you can set the value via a setter (or constructor)
    – Selindek
    Nov 15 at 15:58






  • 1




    static is evil :)
    – Selindek
    Nov 15 at 16:12






  • 1




    Create a MyProperties class instead annotated with @ConfigurationProperties and inject this property-bean into your service classes. And then you can access the individual properties via getters.
    – Selindek
    Nov 15 at 16:14
















Why do you need that? Either it's an integration test annotated with @RunWith(SpringRunner.class) or @SpringBootTest, in which case you can use the @Value annotation in the test class too, or it's a unit-test, and in that case you should emulate the value manually anyway.
– Selindek
Nov 15 at 15:48




Why do you need that? Either it's an integration test annotated with @RunWith(SpringRunner.class) or @SpringBootTest, in which case you can use the @Value annotation in the test class too, or it's a unit-test, and in that case you should emulate the value manually anyway.
– Selindek
Nov 15 at 15:48












no its not unit test. i have shared sample code above..at one scenario i need to have that property in class where i have not used sterotype annotation
– basky
Nov 15 at 15:54




no its not unit test. i have shared sample code above..at one scenario i need to have that property in class where i have not used sterotype annotation
– basky
Nov 15 at 15:54












Sorry, I misunderstood the question. But if you don't use stereotype annotations then it means that you create that bean/object manually somewhere. So you can inject the value into the creator bean with @Value and when you create a Test object in this bean you can set the value via a setter (or constructor)
– Selindek
Nov 15 at 15:58




Sorry, I misunderstood the question. But if you don't use stereotype annotations then it means that you create that bean/object manually somewhere. So you can inject the value into the creator bean with @Value and when you create a Test object in this bean you can set the value via a setter (or constructor)
– Selindek
Nov 15 at 15:58




1




1




static is evil :)
– Selindek
Nov 15 at 16:12




static is evil :)
– Selindek
Nov 15 at 16:12




1




1




Create a MyProperties class instead annotated with @ConfigurationProperties and inject this property-bean into your service classes. And then you can access the individual properties via getters.
– Selindek
Nov 15 at 16:14




Create a MyProperties class instead annotated with @ConfigurationProperties and inject this property-bean into your service classes. And then you can access the individual properties via getters.
– Selindek
Nov 15 at 16:14












1 Answer
1






active

oldest

votes

















up vote
0
down vote














Suppose you want to read these values which is present in application.properties file




db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/test
db.username=root
db.password=root



Then you can use Environment variable to read it these property values as




class Test {
@Autowired
Environment env;

public void readProperty(){
String driverClassName=env.getProperty("db.driverClassName");
String url=env.getProperty("db.url");
String username=env.getProperty("db.username");
String password=env.getProperty("db.password");
}
}





share|improve this answer





















    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',
    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
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322698%2fhow-to-get-the-property-value-in-spring-boot%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








    up vote
    0
    down vote














    Suppose you want to read these values which is present in application.properties file




    db.driverClassName=com.mysql.jdbc.Driver
    db.url=jdbc:mysql://localhost:3306/test
    db.username=root
    db.password=root



    Then you can use Environment variable to read it these property values as




    class Test {
    @Autowired
    Environment env;

    public void readProperty(){
    String driverClassName=env.getProperty("db.driverClassName");
    String url=env.getProperty("db.url");
    String username=env.getProperty("db.username");
    String password=env.getProperty("db.password");
    }
    }





    share|improve this answer

























      up vote
      0
      down vote














      Suppose you want to read these values which is present in application.properties file




      db.driverClassName=com.mysql.jdbc.Driver
      db.url=jdbc:mysql://localhost:3306/test
      db.username=root
      db.password=root



      Then you can use Environment variable to read it these property values as




      class Test {
      @Autowired
      Environment env;

      public void readProperty(){
      String driverClassName=env.getProperty("db.driverClassName");
      String url=env.getProperty("db.url");
      String username=env.getProperty("db.username");
      String password=env.getProperty("db.password");
      }
      }





      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote










        Suppose you want to read these values which is present in application.properties file




        db.driverClassName=com.mysql.jdbc.Driver
        db.url=jdbc:mysql://localhost:3306/test
        db.username=root
        db.password=root



        Then you can use Environment variable to read it these property values as




        class Test {
        @Autowired
        Environment env;

        public void readProperty(){
        String driverClassName=env.getProperty("db.driverClassName");
        String url=env.getProperty("db.url");
        String username=env.getProperty("db.username");
        String password=env.getProperty("db.password");
        }
        }





        share|improve this answer













        Suppose you want to read these values which is present in application.properties file




        db.driverClassName=com.mysql.jdbc.Driver
        db.url=jdbc:mysql://localhost:3306/test
        db.username=root
        db.password=root



        Then you can use Environment variable to read it these property values as




        class Test {
        @Autowired
        Environment env;

        public void readProperty(){
        String driverClassName=env.getProperty("db.driverClassName");
        String url=env.getProperty("db.url");
        String username=env.getProperty("db.username");
        String password=env.getProperty("db.password");
        }
        }






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 15 at 18:20









        Altaf

        3110




        3110






























            draft saved

            draft discarded




















































            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.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • 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.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53322698%2fhow-to-get-the-property-value-in-spring-boot%23new-answer', 'question_page');
            }
            );

            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







            Popular posts from this blog

            How to send String Array data to Server using php in android

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Is anime1.com a legal site for watching anime?