一.读取默认application.properties配置文件中自定义的属性
@Component public class UserConfig { @Autowired private Environment environment; @Value("${local.ip}") private String ip; @Value("${local.port}") private Integer port;//自动转为整形 /** * 当配置文件没值的时候,默认值为8090 */ @Value("${tomcat.port:8090}") private Integer tomcatPort; public void show(){ System.out.println(environment.getProperty("local.ip")); System.out.println(environment.getProperty("local.port",Integer.class)); System.out.println(environment.getProperty("app.name")); System.out.println(ip+"===="+port); System.out.println(tomcatPort); } }
application.properties配置文件内容
local.ip=127.0.0.1 local.port=1010 name=springboot #变量的引用 app.name=this is ${name} #配置类里可以给默认值 tomcat.port=9999
测试
@SpringBootApplication public class App { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(App.class, args); //获取配置文件的值 System.out.println(context.getEnvironment().getProperty("local.ip")); context.getBean(JdbcConfig.class).show(); //通过配置类获取配置文件信息 context.getBean(UserConfig.class).show(); } }
第二种方式:读取自定义配置文件信息----spring管理+指定配置文件+@value
@Component @PropertySource("classpath:jdbc.properties") public class JdbcConfig { @Value("${url}") private String url; public void show() { System.out.println(url); } }
配置文件内容
url=com.mysql.jdbc.Driver
测试
@SpringBootApplication public class App { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(App.class, args); //获取配置文件的值 System.out.println(context.getEnvironment().getProperty("local.ip")); context.getBean(JdbcConfig.class).show(); //通过配置类获取配置文件信息 context.getBean(UserConfig.class).show(); } }
第三种方式: 注意 要有setget方法,配置类需要被spring管理,指定配置文件前缀和位置
url=com.mysql.jdbc.Driver test=mysql #注入集合的信息 list[0]=192 list[1]=193 list[2]=194
支持注入 集合 数组 配置方法 list[0] .....
@Configuration @ConfigurationProperties(prefix="redis") @PropertySource("classpath:jdbc.properties") public class JdbcConfigPro { private String test; //注入集合 private List<String> list=new ArrayList<>(); public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public String getTest() { return test; } public void setTest(String test) { this.test = test; } public void show(){ System.out.println(test+"configproperties"); System.out.println(list.get(0)); } }