1.@PropertySource&@ImportResource&@Bean
- @PropertySource:加载指定的配置文件,只能用于properties文件,不支持yml文件;
以person为例子:
@ConfigurationProperties:告诉springboot将本类中所有属性和配制文件相关的配制进行绑定,而且默认从全局配制文件中获取
如果所有的配制都放在一个配制文件中,太多了,也不方便我们操作,可以把与springboot无关的配制,提取出来放在另一个配制文件中
创建person.properties
增加PropertySource注解
- @ImportResource:
导入Spring的配置文件,让配置文件里面的内容生效;
Spring Boot里面没有
Spring的配置文件,我们自己编写的配置文件,也不能自动识别;想让Spring的配置文件生效,用@ImportResource标注在一个配置类上
创建spring的beans.xml
<?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">
<!--IOC管理bean-->
<bean id="helloService" class="com.qcby.service.HelloService" />
</beans>
所以不会自动导入
加入注解
package com.qcby;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
public class Springboot01Application {
public static void main(String[] args) {
//spring应用启动起来
SpringApplication.run(Springboot01Application.class, args);
}
}
然后测试:
在后期项目我们不用上面方式,springboot推荐给容器中添加组件的方式:推荐使用全注解的方式
1.配制类========配制文件
- 1、配置类@Configuration------>Spring配置文件
- 2、使用@Bean给容器中添加组件
创建一个包放入配置类,把之前那个注解注释掉
package com.qcby.config;
import com.qcby.service.HelloService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration//指明当前类是一个配制类,就是来代替之前的spring配制文件
/**
* 在配置文件中用<bean></bean>标签添加组件
*/
public class MyConfig {
@Bean
//将方法的返回值添加到容器里,容器中这个组件默认的id 就是方法名
public HelloService helloService(){
System.out.println("配制类@Bean给容器添加组件");
return new HelloService();
}
}
运行成功后: