1:概述
Spring Boot支持根据应用的实际需要,进行自定义配置, Spring Boot能从多种属性源获得属性,包括如下几处:

2:可调整的属性
对于Spring Boot自动配置的Bean,目前提供了上千个用于微调的属性。
具体的可以参看官方文档:
https://docs.spring.io/spring-boot/docs/2.0.0.M4/reference/htmlsingle/#common-application-properties
3: 自定义属性
Spring Boot允许使用properties文件、yml文件或者命令行参数作为外部配置,并提供自定义属性的支持。比如我们可以在application.properties配置一些常量,例如:
cc.add.k1=k1vv
cc.add.k2=k222
然后直接在要使用的地方通过注解@Value(value=”${config.name}”)就可以绑定到你想要的属性上面
-
1:使用@Value注解,可以直接将属性值注入到你的beans中,也可以通过Spring的Environment抽象或绑定到结构化对象来访问。
-
2:如果属性太多了,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,比如:这里我们建一个ConfigBean.java类,顶部需要使用注解@ConfigurationProperties(prefix = “cc.add”)来指明使用哪个,示例如下:
@ConfigurationProperties(prefix="cc.add")
public class SysConf {
private String k1;
private String k2;
// 省略getter和setter
}
- 3:然后在启动类上添加:
@EnableConfigurationProperties({SysConf.class})
- 4:然后就可以在要使用的类里面直接注入了:
@Autowired
private SysConf sc;
5:也可以使用
@Autowired
private Environment env;
然后用env.getProperty("cc.add.k1")去访问
4: 参数间引用
在application.properties中的各个参数之间也可以直接引用来使用,使用${paramID},如:
cc.add.k1=k1vv
cc.add.k2=k222-${cc.add.k1}
5: 使用自定义配置文件
有时候我们不希望把所有配置都放在application.properties里面,这时候我们可以另外定义一个,比如:my.properties,形如:
cc.add.k3=k3vv
cc.add.k4=k444-${cc.add.k1}
1:然后再写一个配置bean,形如:
@Configuration
@ConfigurationProperties(prefix = "cc.add")
@PropertySource("classpath:my.properties")
public class MyConf {
private String k3;
private String k4;
}
由于配置了@Configuration,因此不用在启动类中添加了
2:使用方法跟前面使用属性配置类SysConf是一样的
6: 配置随机值
可以使用${random} 可以用来生成各种不同类型的随机值,例如:
${random.value}
${random.int}
${random.long}
${random.uuid}
${random.int(5)}
${random.int[5,10]}
7: 配置文件的放置位置
自定义的配置文件,有多个可以放置的位置:
(1)外置,在相对于应用程序运行目录的/config子目录里
(2)外置,在应用程序运行的目录里
(3)内置,在config包内
(4)内置,在Classpath根目录
1:这个列表按照优先级排序。也就是说,/config子目录里的application.properties会覆盖应用程序Classpath里的application.properties中的相同属性。
2:此外,如果你在同一优先级位置同时有application.properties和application.yml,那么application.properties里的属性会覆盖application.yml里的属性(有资料说的相反)
微调自动配置示例
简单的给出几个微调自动配置的例子,以学习微调的方法。
1:配置嵌入式服务器端口,形如:server.port=9080
配置上下文路径,形如:server.context-path=/myweb
8: 配置日志

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。一般来说,你不需要切换日志实现;Logback能很好地满足你的需要。
1:如果决定使用Log4j或者Log4j2,那么你只需要修改依赖,引入对应该日志实现的起步依赖,同时排除掉 Logback。
以Maven为例,应排除掉根起步依赖传递引入的默认日志起步依赖,这样就能排除 Logback了,形如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
2:通常对日志配置最常做的改动就是修改日志级别和指定日志输出的文件。使用了 Spring Boot的配置属性后,可以在不创建logback.xml文件的情况下修改那些配置。
在application.properties里设置:
logging.path=/var/logs/
logging.file=my.log
logging.level.root=WARN
logging.level.root.org.springframework.security=DEBUG
3:假设应用程序有/var/logs/的写权限,日志就能被写入/var/logs/my.log。默认情况下,日志文件的大小达到10MB时会切分一次。
4:要完全掌握日志配置,可以在Classpath的根目录(src/main/resources)里创建logback.xml文 件。下面是一个logback.xml的简单例子:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="root" level="INFO"/>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
5:由于日志是在ApplicationContext被创建之前初始化,所以不可能在Spring的@Configuration文件中,通过系统属性和传统的外部配置文件来进行调整。
9: 使用profile
1:遵循application-{profile}. properties/yml这种命名格式,这样就能提供特定于Profile的属性了。形如:
application-dev.properties
application-test.properties
2:在application.properties中使用spring.profiles.active属性来设置具体要使用哪一个profile
(1)可以启动多个profile,如:
spring.profiles.active=test,testConf
(2)还可以用spring.profiles.include来叠加profile
spring.profiles.include=test,testConf
3:可以用profile的配置文件来分区配置我们的环境变量,在类里,还可以直接用@Profile注解来进行配置
(1)定义配置用的接口,如:
public interface MyProfile {
String getDBConf();
}
(2)实现配置接口,如:
@Component
@Profile("devConf")
public class Dev implements MyProfile {
public String getDBConf() {
return "devDB";
}
}
@Component
@Profile("testConf")
public class ForTest implements MyProfile{
public String getDBConf() {
return "testDB";
}
}
(3)在properties配置文件中配置:
spring.profiles.include=test,devConf
(4)在需要获取配置的类里面就可以直接注入来使用了,如:
@Autowiredprivate
MyProfile mp;

相关推荐
这个压缩包中的示例项目将展示如何实现上述所有步骤,让开发者能够快速上手并理解Spring Boot、Spring Security和OAuth2.0的集成。通过研究源代码,你可以学习到如何配置和自定义这些组件以适应不同的安全需求。此外...
- **第一步**:介绍如何快速上手,包括环境搭建与基础项目创建。 - **使用Spring Boot**:详细介绍如何利用Spring Boot来构建应用。 - **了解Spring Boot 特性**:探讨Spring Boot的核心功能和技术优势。 - **迁移到...
首先,课程将引导学员快速上手Spring Boot,理解其核心理念和基本结构,包括主配置类、自动配置、起步依赖的使用、内嵌Web服务器以及Spring Boot的命令行接口(CLI)等。此外,还将介绍如何创建第一个Spring Boot...
- **第一步**:介绍了如何快速上手Spring Boot,包括开发环境搭建、项目初始化等基本步骤。 - **使用SpringBoot**:详细阐述了Spring Boot的核心概念与实践技巧。 - **了解SpringBoot特性**:列举并解释了Spring ...
第二章可能会涉及SpringBoot的自动配置机制,解释如何自定义配置以及如何创建自己的自动配置类。此外,还可能讲解如何使用SpringBoot的属性配置文件(application.properties或application.yml)进行配置。 第三章...
├─第4章-Springboot2.x整合ApacheShiro快速上手实战 │ 4-1SpringBoot2.x整合Shiro.mp4 │ 4-2快速上手之Shiro认证和授权流程实操上集.mp4 │ 4-3Shiro认证和授权流程和常用API梳理下集.mp4 │ ├─第5章-...
├─第4章-Springboot2.x整合ApacheShiro快速上手实战 │ 4-1SpringBoot2.x整合Shiro.mp4 │ 4-2快速上手之Shiro认证和授权流程实操上集.mp4 │ 4-3Shiro认证和授权流程和常用API梳理下集.mp4 │ ├─第5章-...
├─第4章-Springboot2.x整合ApacheShiro快速上手实战 │ 4-1SpringBoot2.x整合Shiro.mp4 │ 4-2快速上手之Shiro认证和授权流程实操上集.mp4 │ 4-3Shiro认证和授权流程和常用API梳理下集.mp4 │ ├─第5章-...
├─第4章-Springboot2.x整合ApacheShiro快速上手实战 │ 4-1SpringBoot2.x整合Shiro.mp4 │ 4-2快速上手之Shiro认证和授权流程实操上集.mp4 │ 4-3Shiro认证和授权流程和常用API梳理下集.mp4 │ ├─第5章-...
- **Spring CLI 示例快速入门**:提供了简单的示例来快速上手 Spring Boot CLI。 4. **开发你的第一个 Spring Boot 应用**: - **创建 POM**:在项目根目录下创建 `pom.xml` 文件。 - **添加 classpath 依赖**:...
SpringBoot通过提供默认配置来简化Spring应用的创建,从而使得开发者可以快速上手并构建可生产的应用。这个“springboot2-示例”项目可能是为了帮助初学者和有经验的开发者更好地理解和运用SpringBoot2的核心特性。 ...
#### 四、Spring Boot 番外篇 - **WebFlux 支持**: - **响应式编程**:基于 Project Reactor 实现非阻塞异步处理。 - **WebFlux 控制器**:使用 `@RestController` 或 `@Controller` 注解定义控制器。 - **新...
它集成了大量常用的第三方库配置,如数据源、定时任务、缓存、消息等,通过"约定优于配置"的原则,极大地提高了开发效率。 在描述中提到,这个物业管理系统内置了数据库文件,这意味着项目可能包含了数据库脚本或者...
- **快速启动示例**:提供了一个简单的 Spring Boot 应用示例,用于快速上手。 ##### 11. 开发第一个 Spring Boot 应用 - **创建 POM 文件**:详细介绍了如何创建项目的 POM 文件,包括添加必要的依赖项。 - **添加...
1. **Spring Boot入门**:介绍Spring Boot的安装与环境配置,包括如何创建第一个Spring Boot项目,以及如何使用Spring Initializr快速初始化项目结构。 2. **起步依赖与自动配置**:解释Spring Boot的起步依赖和...
- **初学者起步**:通过简单的步骤引导新手快速上手,包括环境搭建、项目创建等基础操作。 - **深入理解Spring Boot**:详解Spring Boot的核心特性与工作原理,帮助开发者更好地理解和利用这些功能来构建高效稳定的...
SpringBoot通过提供一系列的启动器(Starter),使得开发者可以快速上手并进行项目搭建。由于其内置了如Tomcat等服务器,因此在部署时无需额外的服务器配置。它主要包含了以下三个核心注解:@...
SpringBoot入门学习主要涵盖SpringBoot的基本概念、核心特性以及如何快速搭建一个运行的Web应用。SpringBoot是由Pivotal团队提供的全新框架,旨在...掌握这些内容,你将能够快速上手并高效地开发基于SpringBoot的应用。
SpringBoot简化了Spring应用的初始搭建以及开发过程,它集成了大量常用的第三方库配置,如数据源、JPA、MVC等,使得开发者能够快速上手。而Mybatis作为一款轻量级的持久层框架,提供了灵活的SQL映射功能,让数据库...