SpringBoot中默认加载的是application.properties或者application.yaml文件,当然也支持自定义的属性文件。我们可以在此文件中写一些自己想要的配置信息,然后在用的地方读取。
默认属性文件
在application.properties文件中添加配置信息,如下:
my.name=蜗牛my.age=30
使用@Value 读取
@RestControllerpublic class PropertiesReadController { //${}中的key一定要对应正确 @Value("${my.name}") private String name; @Value("${my.age}") private Integer age; @RequestMapping(value = "/hello", method= RequestMethod.GET) public String hello(){ return "hello, name:" + name+" age:"+age; }}
启动服务,访问localhost:8080/hello 可以看到返回信息
对于属性值比较少的情况,我们使用@Value注解来获取也还是比较方便的,但是当配置的属性值比较多时,代码中到处写读取值的,显得不是很优雅。
使用@ConfigurationProperties 读取
修改application.properties文件,添加如下配置信息
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=localhost:3306/testjdbc.username=rootjdbc.password=123456
创建一个接收配置信息的对象
@Component//指定要读取的信息的前缀@ConfigurationProperties(prefix = "jdbc")public class JdbcProperties { private String driver; private String url; private String username; private String password; // 省略get 和 set方法}
通过@ConfigurationProperties 注解和 prefix属性我们指定了当前类要读取的配置信息,通过@Component 注解将当前对象交给spring管理,在我们需要的地方就可以注入使用;
@RestControllerpublic class PropertiesReadController { @Autowired private JdbcProperties jdbcProperties; @RequestMapping(value = "/jdbc", method= RequestMethod.GET) public String helloJdbc(){ //打印输出读取的信息 System.out.println("driver:"+jdbcProperties.getDriver()); System.out.println("url:"+jdbcProperties.getUrl()); System.out.println("username:"+jdbcProperties.getUsername()); System.out.println("password:"+jdbcProperties.getPassword()); return "hello jdbc"; }}
请求当前方法,可以看到控制台打印的信息
自定义属性文件
前边也说到了,默认读取的是application.properties或者application.yaml文件中的内容,我们也可以指定读取自己定义的配置文件中的内容。
在resources目录下创建jdbc.properties文件,并写入内容,如下:
my.jdbc.driver=com.mysql.jdbc.Drivermy.jdbc.url=localhost:3306/testmy.jdbc.username=rootmy.jdbc.password=123456
修改上边的JdbcProperties类
@Component//指定要读取的信息的前缀@ConfigurationProperties(prefix = "my.jdbc")@PropertySource(value="classpath:jdbc.properties")public class JdbcProperties { private String driver; private String url; private String username; private String password; // 省略 get 和 set 方法}
通过@PropertySource 注解的value 来指定当前要读取的属性所在的配置文件,访问后同样可以得到配置信息。
点击关注,后期更多精彩内容呈上!