除了第一篇中使用 覆写的方式进行 自动配置的更改外,还可以通过 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. 黑客常用WinAPI函数整理

    之前的博客写了很多关于Windows编程的内容,在Windows环境下的黑客必须熟练掌握底层API编程.为了使读者对黑客常用的Windows API有个更全面的了解以及方便日后使用API方法的查询,特 ...

  2. Windows JDK 1.8降级为1.7方法

    转自:https://www.aliyun.com/jiaocheng/890626.html 正常情况下,JDK的升降级只需更改环境变量即可 可是到了1.8版本,Oracle使了一点小手段, 在系统 ...

  3. 【194】Windows 上使用 wget

    本文包括两部分,首先就是在 Windows 使用 wget 来下载文件,这样固然很好,然而问题并非这么简单,在 PowerShell 4.0 版本中增加了 Invoke-WebRequest 的别名 ...

  4. CodeForces 723D Lakes in Berland (dfs搜索)

    题意:给定一个n*m的矩阵,*表示陆地, . 表示水,一些连通的水且不在边界表示湖,让你填最少的陆地使得图中湖剩下恰好为k. 析:很简单的一个搜索题,搜两次,第一次把每个湖的位置和连通块的数量记下来, ...

  5. 在selenium中一些相对常用的JavaScript事件

    输入框输入: 1.找到输入框的id,然后进行输入操作 ordinal :输入框的id parameter :需要输入的内容 browser.execute_script("document. ...

  6. 《Windows核心编程系列》十二谈谈Windows内存体系结构

    Windows内存体系结构 理解Windows内存体系结构是每一个励志成为优秀的Windows程序员所必须的. 进程虚拟地址空间 每个进程都有自己的虚拟地址空间.对于32位操作系统来说,它的地址空间是 ...

  7. SAMP论文学习

    SAMP:稀疏度自适应匹配追踪 实际应用中信号通常是可压缩的而不一定为稀疏的,而且稀疏信号的稀疏度我们通常也会不了解的.论文中提到过高或者过低估计了信号的稀疏度,都会对信号的重构造成影响.如果过低估计 ...

  8. 洛谷 P2617 Dynamic Rankings || ZOJ - 2112

    写的让人看不懂,仅留作笔记 静态主席树,相当于前缀和套(可持久化方法构建的)值域线段树. 建树方法:记录前缀和的各位置的线段树的root.先建一个"第0棵线段树",是完整的(不需要 ...

  9. Apple Tree POJ - 2486

    Apple Tree POJ - 2486 题目大意:一棵点带权有根树,根节点为1.从根节点出发,走k步,求能收集的最大权值和. 树形dp.复杂度可能是O(玄学),不会超过$O(nk^2)$.(反正这 ...

  10. 构造 HDOJ 5399 Too Simple

    题目传送门 题意:首先我是懂了的,然后我觉得很难讲清楚就懒得写了,关键理解f1(f2(fm(i)))=i,不懂的戳这里构造:如果fi(j)不是映射到(1~n),重复或者不在范围内的肯定无解.还有没有- ...