信创国产化如何推动信息技术的自主创新与发展
567
2023-01-16
详解Spring注解驱动开发之属性赋值
一、@Value注解
在Person的属性上使用@Value注解指定注入值
public class Person {
@Valhttp://ue("#{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);
}
输出结果:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~