@PropertySource 和 @ImportResource
@PropertySource :加载指定的配置文件
@PropertySource(value = {"classpath:person.properties"})
@Component
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String, Object> maps;
private List<Object> lists;
private Dog dog;
@ImportResource:导入 Spring 的配置文件,让配置文件里面的内容生效
Spring Boot 里面没有 Spring 的配置文件,我们自己编写的配置文件,也不能自动识别;
如果想让 Spring 的配置文件生效加载进来,把@ImportResource标注在一个配置类上
package com.memory.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
// 导入 Spring 的配置文件让其生效
@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
public class SpringBoot02ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBoot02ConfigApplication.class, args);
}
}
不来编写 Spring 的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloService" class="com.memory.springboot.service.HelloService"></bean>
</beans>
SpringBoot 推荐给容器中添加组件的方式:推荐使用权注解的方式
1、配置类 —— Spring 配置文件
2、使用 @Bean 给容器中添加组件
package com.memory.springboot.config;
import com.memory.springboot.service.HelloService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Configuration:指明当前类是一个配置类,就是来代替之前的 Spring 配置文件
*
* 在配置文件中用 <bean></bean> 标签添加组件
*/
@Configuration
public class MyAppConfig {
// 将方法的返回值添加到容器中:容器中的这个组件默认的 Id 就是方法名
@Bean
public HelloService helloService(){
System.out.println("配置类 @Bean 给容器中添加组件");
return new HelloService();
}
}