除了第一篇中使用 覆写的方式进行 自动配置的更改外,还可以通过 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】的更多相关文章

  1. Spring Boot . 4 -- 定制 Spring Boot 配置

    覆写 Auto-Configuration 的类 利用外部属性进行动态配置 [本文] 定制 Error 页面 [第二篇] Spring Boot的自动配置可以节省很多无趣的配置工作,但是并不是所有的自 ...

  2. Spring Boot实践——基础和常用配置

    借鉴:https://blog.csdn.net/j903829182/article/details/74906948 一.Spring Boot 启动注解说明 @SpringBootApplica ...

  3. 自定义的Spring Boot starter如何设置自动配置注解

    本文首发于个人网站: 在Spring Boot实战之定制自己的starter一文最后提到,触发Spring Boot的配置过程有两种方法: spring.factories:由Spring Boot触 ...

  4. Spring Boot源码探索——自动配置的内部实现

    前面写了两篇文章 <Spring Boot自动配置的魔法是怎么实现的>和 <Spring Boot起步依赖:定制starter>,分别分析了Spring Boot的自动配置和起 ...

  5. Spring Boot使用Druid和监控配置

    Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource 整体步骤: (1)    --   Druid简单介绍,具体看官网: (2)     ...

  6. Spring Boot应用的后台运行配置

    酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式: 运行Spring Boot的应用主类 使用Mave ...

  7. Spring boot 的 properties 属性值配置 application.properties 与 自定义properties

    配置属性值application.properties 文件直接配置: com.ieen.super.name="MDD" 自定义properties文件配置:src/main/r ...

  8. Spring Boot 启动(二) 配置详解

    Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置 ...

  9. Spring Boot 中使用 @Transactional 注解配置事务管理

    事务管理是应用系统开发中必不可少的一部分.Spring 为事务管理提供了丰富的功能支持.Spring 事务管理分为编程式和声明式的两种方式.编程式事务指的是通过编码方式实现事务:声明式事务基于 AOP ...

随机推荐

  1. box-shadow 模拟border

    border会占据空间;如果想加边框效果,但是又不占用空间,可以使用box-shadow来模拟 demo div 100*100 border:10px solid red; 可以写: div 100 ...

  2. pycharm中关于django和buildout的配置

    pycharm提供了对django和buildout的支持,具体的配置如下: 1.django support 在pycharm的settings中修改如下3个选项 1)django project ...

  3. VS 2017 产品密钥

    Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QFVisual Studio 2017(VS2017 ...

  4. Spring Cloud Eureka配置文件例子与较为详细说明

    Eureka服务端: application.yml # eureka(最)简单单点开发配置.支持yml与properties两种,yml文件后缀必须为yml,不能是yaml,否则找不到该文件,使用默 ...

  5. 数据结构 - 静态单链表的实行(C语言)

    静态单链表的实现 1 静态链表定义 静态链表存储结构的定义如下: /* 线性表的静态链表存储结构 */ #define MAXSIZE 1000 /* 假设链表的最大长度是1000 */ typede ...

  6. performClick()方法的使用

    performClick 是使用代码主动去调用控件的点击事件(模拟人手去触摸控件) 例如: 添加Ctrl+s 快捷键 保存,并触发btnSave按钮事件 protected override bool ...

  7. jmeter(六)关联

    话说LoadRunner有的一些功能,比如:参数化.检查点.集合点.关联,Jmeter也都有这些功能,只是功能可能稍弱一些,今天就关联来讲解一下. JMeter的关联方法有两种:后置处理器-正则表达式 ...

  8. 配置Oracle网络服务

    Oracle网络服务是什么呢? Oracle网络服务是客户端访问数据库服务器端才需要配置的,也就是说,你的Oracle数据库没有装在你自己的电脑上,你需要去访问别人电脑上的Oracle数据库,那么你就 ...

  9. 关于OPPO手机的生存和程序员的发展

    关于程序员私下讨论最多的话题,除了哪个编程最牛逼之外,哪款品牌的手机最牛逼也是我们谈论最多的话题之一吧!有的喜欢罗永浩,自然就是锤粉:有的喜欢苹果,称它为工业时代最优美的艺术品:当然,我想也有很多的人 ...

  10. iOS Programming UISplitViewController

    iOS Programming UISplitViewController  The iPad, on the other hand, has plenty of screen space to pr ...