注意:
SpringBoot是默认识别application.properties和application.yml文件的。
如果在application配置文件写信息:
jdbc.username=root
jdbc.password=123456
不需要写@PropertySource("classpath:jdbc.properties")注解,如果自己定义jdbc.properties里面写上这些信息:需要写上@PropertySource("classpath:jdbc.properties")
使用@PropertySource注解加载自定义的配置文件,但该注解无法加载yml配置文件。然后可以使用@Value注解获得文件中的参数值
方式一: @Value
@PropertySource("classpath:jdbc.properties") //是否要加取决于在哪里写的
@Data
@Component
public class JDBC {
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
}
方式二: @ConfigurationProperties
@PropertySource("classpath:jdbc.properties") //也是否要加取决于在哪里写的
@ConfigurationProperties(prefix="jdbc")
@Data
@Component
public class JDBC {
private String username;
private String password;
}
方式三:Environment
@RestController
public class WebController {
@Autowired
private Environment env;
@RequestMapping("/index")
public String index(){
return "方式二:"+env.getProperty("jdbc.username");
}
}
这种方式好像只能获取放在application里面的信息,对于自定义文件的只能用方式一和二
总结:
对于方式一和二,必须要加上 @component 注解,然后使用的时候用@Autowire注入后才能取得值,直接new 的方式是获取不到的!
推荐第二种方式!简洁优雅!
本文详细介绍了在SpringBoot中如何使用三种不同方式读取配置文件的信息,包括@Value注解、@ConfigurationProperties注解以及Environment接口的使用方法,并对比了它们的特点。

530

被折叠的 条评论
为什么被折叠?



