spring通过ioc容器管理bean,bean的配置信息可由xml文件, 也可以由注解来表示。通常注解表示更简洁方便,但是注解只能加注在自定义的类上,对应第三方的类,spring提供了@Bean注解来实现对象注入。@Component , @Repository , @ Controller , @Service 这些注解只局限于自己编写的类,而@Bean注解能把第三方库中的类实例加入IOC容器中并交给spring管理。
//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
@Bean
public Person person(){
return new Person();
}
}
上述代码通过person()方法(加了@Bean注解)往容器注入Person的实例。person实例的属性值怎么设置呢?在定义Person类时,通过注解@Value来赋值:
public class Person {
@Value("${person.name}")
private String name;
@Value("${person.age}")
private Integer age;
}
使用@Value赋值,可以是:
1、基本数值
2、可以写SpEL; #{}
3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)
如果采用方式3,在@Bean注解前,用注解@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值