spring通过ioc容器管理bean,bean对象可由xml文件配置注入, @Component , @Repository , @ Controller , @Service 这些注解也可以注入类的实例。通常注解表示更简洁方便,但是上述注解只能加注在自定义的类上,对应第三方的类,spring提供了配置类的方式来注入对象,@Configuration注解的class表示是一个配置类,@Bean注解的函数,其返回值表示注入相应的对象。而@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保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值