Spring 4: @PropertySource and Environment example

Today we will see how to load and read from property file in Spring 4 using @PropertySource annotation and Environment class.

Let’s say we have the User class

public class User {
    private String name;
    private int age;
    private String country;

    public User(String name, int age, String country) {
        this.name = name;
        this.age = age;
        this.country = country;

    public String getName() {
        return name;

    public int getAge() {
        return age;

    public String getCountry() {
        return country;

Our goal is to create user object and fill up the user details with the properties specified in user.properties
we have the following property file:


In order to load the property file we will add @PropertySource annotation to our spring config class. And later we will get the properties using Environment class

public class ConfigEnv {

    Environment env;

    public User getUser() {
        String name = env.getProperty("name");
        //we can specify the property type
        int age = env.getProperty("age", Integer.class);
        String country = env.getProperty("country");
        return new User(name, age, country);

Let’s run and see the output:

public class UserApp {
    public static void main(String[] args) {
        ApplicationContext context =
                new AnnotationConfigApplicationContext(ConfigEnv.class);

        User user = context.getBean(User.class);
        System.out.println("name --> "+user.getName());
        System.out.println("age --> "+user.getAge());
        System.out.println("country --> "+user.getCountry());



name --> Tom
age --> 30
country --> USA

Environment class provides different ways for getting properties. As we saw we can specify the property type:

int age = env.getProperty("age", Integer.class);

We can specify also the default value in case property is not there

int age = env.getProperty("age", 25);
int age = env.getProperty("age", Integer.class, 25);

If the property is required we can do:

int age = env.getRequiredProperty("age", Integer.class);