詳解Spring註解驅動開發之屬性賦值

一、@Value註解

Person的屬性上使用@Value註解指定註入值

public class Person {
    
    @Value("#{20-2}")     //SpEL表達式 #{}
    private Integer id;
    
    @Value("張三")        //基本數據類型
    private String name;
}

配置類

@Configuration
public class MainConfigOfPropertyValues {

    @Bean
    public Person person(){
        return new Person();
    }
}

測試

 @Test
    public void testValues(){
        ApplicationContext context = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);

        String[] beanDefinitionNames = context.getBeanDefinitionNames();

        for (String beanName : beanDefinitionNames){
            System.out.println(beanName);
        }

        Person person = (Person) context.getBean("person");

        System.out.println(person);
    }

輸出結果:

在這裡插入圖片描述

二、@PropertySource加載外部配置文件

配置類加上@PropertySource註解,引入外部配置文件

@PropertySource({"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {

    @Bean
    public Person person(){
        return new Person();
    }
}

使用${屬性值}註入屬性值

public class Person {

    @Value("#{20-2}")     //SpEL表達式 #{}
    private Integer id;

    @Value("張三")        //基本數據類型
    private String name;
    
    @Value("${person.age}")     //使用外部配置文件註入屬性值
    private Integer age;
}

輸出結果:

在這裡插入圖片描述

因為配置文件中的值默認都加載到環境變量中,所有還可以通過環境變量來獲取配置文件中的值

 @Test
    public void testValues(){
        ApplicationContext context = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);

        String[] beanDefinitionNames = context.getBeanDefinitionNames();

        for (String beanName : beanDefinitionNames){
            System.out.println(beanName);
        }

        Person person = (Person) context.getBean("person");

        System.out.println(person);

        Environment environment = context.getEnvironment();

        String age = environment.getProperty("person.age");
        System.out.println("age = " + age);

    }

輸出結果:

在這裡插入圖片描述

到此這篇關於詳解Spring註解驅動開發實現屬性賦值的文章就介紹到這瞭,更多相關Spring註解驅動開發內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: