詳解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!
推薦閱讀:
- Spring中如何使用@Value註解實現給Bean屬性賦值
- @PropertySource 無法讀取配置文件的屬性值解決方案
- Java Spring Bean的生命周期管理詳解
- SpringBoot 配置文件給實體註入值方式
- spring 和 spring boot 中的屬性配置方式