SpringBoot教程
SpringBoot入门案例
SpringBoot框架Web开发
SpringBoot非web应用程序
SpringBoot使用拦截器
SpringBoot中使用Servlet
SpringBoot中使用Filter
SpringBoot项目配置字符编码
SpringBoot打包与部署
SpringBoot使用Actuator
SpringBoot集成Thymeleaf模板
SpringBoot总结及综合案例
SpringBoot工程下使用Mybatis反向工程

SpringBoot核心配置文件

Spring Boot的核心配置文件用于配置Spring Boot程序,名字必须以application开始.

Spring Boot核心配置格式

1 .properties文件(默认采用该文件)

在002-springboot-springmvc项目基础上,进行修改

项目名称:003-springboot-port-context-path

通过修改application.properties配置文件,在修改默认tomcat端口号及项目上下文件根

键值对的properties属性文件配置方式

#设置内嵌Tomcat端口号
server.port=9090

#配置项目上下文根
server.servlet.context-path=/003-springboot-port-context-path

配置完毕之后,启动浏览器测试

页面显示结果

2 .yml文件

项目名称:005-springboot-yml,在004项目基础之上

yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。

yaml 是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比xml 简洁很多,值与前面的冒号配置项必须要有一个空格, yml 后缀也可以使用 yaml 后缀

注意:当两种格式配置文件同时存在,使用的是.properties配置文件,为了演示yml,可以先将其改名,重新运行Application,查看启动的端口及上下文根。

我们以后在授课的过程中,使用properties,所以演示完yml效果后,将该配置文件改名

SpringBoot多环境配置

在实际开发的过程中,我们的项目会经历很多的阶段(开发->测试->上线),每个阶段的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了方便在不同的环境之间切换,SpringBoot提供了多环境配置,具体步骤如下:

项目名称:006-springboot-multi-environment

1.为每个环境创建一个配置文件,命名必须以application-环境标识.properties|yml

application-dev.properties

#开发环境

#设置内嵌Tomcat默认端口号
server.port=8080

#设置项目的上下文根
server.servlet.context-path=/006-springboot-multi-environment-dev

application-product.properties

#生产环境

#配置内嵌Tomcat默认端口号
server.port=80

#配置项目上下文根
server.servlet.context-path=/006-springboot-multi-environment-product

application-test.properties

#测试环境

#配置内嵌Tomcat端口号
server.port=8081

#配置项目的上下文根
server.servlet.context-path=/006-springboot-multi-environment-test

● 在总配置文件application.properties进行环境的激活

#SpringBoot的总配置文件

#激活开发环境
#spring.profiles.active=dev

#激活测试环境
#spring.profiles.active=test

#激活生产环境
spring.profiles.active=product

等号右边的值和配置文件的环境标识名一致,可以更改总配置文件的配置,重新运行Application,查看启动的端口及上下文根。

SpringBoot自定义配置

在SpringBoot的核心配置文件中,除了使用内置的配置项之外,我们还可以在自定义配置,然后采用如下注解去读取配置的属性值。

1.@Value注解

项目名称:007-springboot-custom-configuration

用于逐个读取application.properties中的配置

案例演示

① 在核心配置文件applicatin.properties中,添加两个自定义配置项school.name和school.website。在IDEA中可以看到这两个属性不能被SpringBoot识别,背景是桔色的。

② 在SpringBootController中定义属性,并使用@Value注解或者自定义配置值,并对其方法进行测试

/**
 * ClassName:SpringBootController
 * Package:com.sxbdqn.springboot.web
 * Description:

 */
@Controller
public class SpringBootController {

    @Value("${school.name}")
    private String schoolName;

    @Value("${school.websit}")
    private String schoolWebsit;

    @RequestMapping(value = "/springBoot/say")
    public @ResponseBody String say() {
        return schoolName + "------" + schoolWebsit;
    }
}

③ 重新运行Application,在浏览器中进行测试

2. @ConfigurationProperties

项目名称:008-springboot-custom-configuration

将整个文件映射成一个对象,用于自定义配置项比较多的情况

案例演示

① 在com.sxbdqn.springboot.config包下创建ConfigInfo类,并为该类加上Component和ConfigurationProperties注解,prefix可以不指定,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置,prefix的作用可以区分同名配置

/**
 * ClassName:ConfigInfo
 * Package:com.sxbdqn.springboot.config
 * Description:

 */
@Component
@ConfigurationProperties(prefix = "school")
public class ConfigInfo {

    private String name;

    private String websit;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getWebsit() {
        return websit;
    }

    public void setWebsit(String websit) {
        this.websit = websit;
    }
}

② 在SpringBootController中注入ConfigInfo配置类

@Autowired
private ConfigInfo configInfo;

③ 修改SpringBootController类中的测试方法

@RequestMapping(value = "/springBoot/configInfo")
public @ResponseBody String say() {
    return configInfo.getName() + "=======" + configInfo.getWebsit();
}

④ 重新运行Application,在浏览器中进行测试

3. 警告解决

① 在ConfigInfo类中使用了ConfigurationProperties注解后,IDEA会出现一个警告,不影响程序的执行

② 点击open documentnation跳转到网页,在网页中提示需要加一个依赖,我们将这个依赖拷贝,粘贴到pom.xml文件中

!--解决使用@ConfigurationProperties注解出现警告问题-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

4. 中文乱码

如果在SpringBoot核心配置文件中有中文信息,会出现乱码:

o 一般在配置文件中,不建议出现中文(注释除外)

o 如果有,可以先转化为ASCII码

5. 友情提示

大家如果是从其它地方拷贝的配置文件,一定要将里面的空格删干净。