首页 > 代码库 > Spring Boot . 4 -- 定制 Spring Boot 配置 【2】
Spring Boot . 4 -- 定制 Spring Boot 配置 【2】
除了第一篇中使用 覆写的方式进行 自动配置的更改外,还可以通过 Spring Boot 中提供的 application.properties 文件改变应用的运行时配置。这种配置的方式粒度是非常精细的。
application.properties
在 Spring Boot 应用中,application.properties 文件在 resource/ 目录下,初始状态下,application.properties 是空白的。通过这个文件可以比较细粒度的控制Spring Boot 中的一些配置,比如 数据库链接、特定参数配置等。默认情况下,应用启动后监听的端口为 8080,如果想要将坚挺的端口设置为7000,那么只要在application.properties 文件中加上 server.port=7000,然后启动应用,在浏览器中 使用 localhost:7000 就可以访问页面了。
application.properties 文件有一些默认的可配置参数,比如spring.datasource.* 可以使用这些配置,对应用中使用的DataSource进行配置。这些已有的配置可以通过文档查到。使用自主的配置与使用原有配置,方法基本是一致的。举个例子,如果想在一个类中使用application.properties 中配置的数据。需要使用注解 @ConfigurationProperties(prefix="test")
@Controller
@RequestMapping("/")
@ConfigurationProperties(prefix = "test")
public class ReadingListController {
private String property;
System.out.println("value" + property);
public void setProperty(String property) {
this.property=property;
}
}
在 application.properties 中只要简单指定 属性的值:
test.property=just a test
当然,如果想要在代码中使用 application.properties 中的参数初始化一个类对象,在其他的地方直接以实例的方式使用也是非常好的。使用方式与上面基本是一致的。首先在application.properties 文件中定义需要的数据:
dealer.item=ball dealer.fashion=true dealer.money=100 dealer.home=shop
定义一个类Dealer,使用当前定义的配置 :
@ConfigurationProperties(prefix = "dealer")
@Configuration public class Dealer { private String item; private boolean fashion; private int money; private String home; public String getItem() { return item; } public void setItem(String item) { this.item = item; } public boolean isFashion() { return fashion; } public void setFashion(boolean fashion) { this.fashion = fashion; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } public String getHome() { return home; } public void setHome(String home) { this.home = home; } }
Dealer 在Controller 中进行使用:
@Controller public class HelloController { @Autowired private ReaderRepository readerRepository; private Dealer dealer; @Autowired public HelloController(Dealer dealer) { this.dealer = dealer; } @RequestMapping(value = "/prop") public String testProp() { System.out.println("HERE " + dealer.getHome()); return "index"; } }
使用的套路基本上就是这样的。
Spring Boot . 4 -- 定制 Spring Boot 配置 【2】