上QQ阅读APP看书,第一时间看更新
4.3.3 自定义配置文件
上面介绍了如何把配置属性写到application.yml配置文件中,并把配置属性读取到一个配置类中。有时属性太多,把所有的配置属性都写到application.yml配置文件中不太合适,这时需要自定义配置文件。例如在src/main/resources目录下自定义一个test.properties配置文件,其配置信息如下:
com.forezp.name=forezp com.forezp.age=12
如何将这个配置文件test.properties的属性和属性值赋给一个JavaBean呢?需要在类名上加@Configuration、@PropertySource和@ConfigurationProperties这3个注解。需要注意的是,若Spring Boot版本为1.4或1.4之前,则需要在@PropertySource注解上加location,并指明该配置文件的路径。本案例采用的Spring Boot版本为2.1.0,代码如下:
@Configuration @PropertySource(value = "classpath:test.properties") @ConfigurationProperties(prefix = "com.forezp") public class User { private String name; private int age; …//省略了getter 、setter }
写一个LucyController的类,在类的上方加上@RestController注解,开启RestController的功能;加上@EnableConfigurationProperties注解,并指明需要引用的JavaBean的类,开启引用配置属性的功能,其代码清单如下:
@RestController @EnableConfigurationProperties({ConfigBean.class,User.class}) public class LucyController { @Autowired User user; @RequestMapping(value = "/user") public String user(){ return user.getName()+”:”+user.getAge(); } }
启动工程,在浏览器上访问“http://localhost:8080/user”。浏览器会显示“forezp:12 ”,这说明自定义配置文件的属性被读取到了JavaBean中。