1.背景
springboot框架是一個自動化配置框架,當自動化配置滿足不了程序的需求時,我們就需要配置自己特殊的參數,例如配置服務啟動的端口,或者我們自定義一些組件時,需要初始化時,就可以將數據定義在配置文件中,然后通過spring框架將配置文件中的數據注入到組件中。
2.方式一
- 定義組件添加@Component注解和@ConfigurationProperties(prefix = "mycar")
@Component @ConfigurationProperties(prefix = "mycar") public class Car { private String brand; private double price; }
- 在application.properties配置文件中配置對於前綴的數據
mycar.brand=BWM mycar.price=88888
- @ConfigurationProperties注解的作用:在配置文件中根據前綴獲取相應的值,注入到屬性中,但是要想注入成功必須將該組件加入到容器中,因為在springboot中要想實現自動配置的效果,就必須將組件添加到容器中。
3.方式二
- 依舊將@ConfigurationProperties注解設置前綴,這個時候不需要將組件加到ioc容器中
@ConfigurationProperties(prefix = "mycar") public class Car { private String brand; private double price; }
- 在任意一個配置類中使用@EnableConfigurationProperties注解,且在將組件的類型作為參數送進去,該注解的參數是一個數組,我們可以傳多個組件進行自動配置,且將這些組件加入到ioc容器中。
@SpringBootApplication @EnableConfigurationProperties({Car.class}) public class Springdemo11Application { public static void main(String[] args) { ConfigurableApplicationContext run = SpringApplication.run(Springdemo11Application.class, args); Object car = run.getBean("car"); System.out.println(car.toString()); } }