当前位置: 首页 > news >正文

【SpringBoot】第3章 SpringBoot的系统配置

3.1 系统配置文件

3.1.1 application.properties

SpringBoot支持两种不同格式的配置文件,一种是Properties,一种是YML。

SpringBoot默认使用application.properties作为系统配置文件,项目创建成功后会默认在resources目录下生成application.properties文件。该文件包含SpringBoot项目的全局配置。

我们可以在application.properties文件中配置SpringBoot支持的所有配置项,比如端口号、数据库连接、日志、启动图案等。

#服务器端口配置

server.port = 8081

 

#thymeleaf 模板

spring.thymeleaf.prefix=classpath:/templates/

spring.thymeleaf.suffix=.html

spring.thymeleaf.mode=HTML

spring.thymeleaf.encoding=UTF-8

spring.thymeleaf.servlet.content-type=text/html

以上示例将thymeleaf模板相关的配置放在一起,清晰明了,从而便于快速找到thymeleaf的所有配置。

 

3.修改默认配置文件名

new SpringApplicationBuilder(ApplicationDemo.class).properties("spring.config.location=classpath:/application.propertie").run(args);

 

3.2 自定义配置项

3.2.2 Environment

@Autowired

private Environment env;

@Test

void getEnv(){

      System.out.println(env.getProperty("com.weiz.costum.firstname"));

System.out.println(env.getProperty("com.weiz.costum.secondname"));

}

 

3.2.3 @ConfigurationProperties

在实际项目开发中,需要注入的配置项非常多时,前面所讲的@value和Environment两种方法就会比较繁琐。这时可以使用注解@ConfigurationProperties将配置项与实体Bean关联起来,实现配置项与实体类字段的关联,读取配置文件数据。下面通过示例演示@ConfigurationProperties注解如何读取配置文件。

1.创建自定义配置文件

在resources下创建自定义的website.properties配置文件,示例代码如下:

com.weiz.resource.name=weiz

com.weiz.resource.website=www.weiz.com

com.weiz.resource.language.=java

在上面的示例中,创建了自定义的website.properties配置文件,增加了name、website、language等三个配置项,这些配置项的名称的前缀都是com.weiz.resource。

 

2.创建实体类

创建WebSiteProperties自定义配置对象类,然后使用@ConfigurationProperties注解将配置文件中的配置项注入到自定义配置对象类中,示例代码如下:

@Configuration

@ConfigurationProperties(prefix = "com.weiz.resource")

@PropertySource(value = "classpath:website.properties")

public class WebSiteProperties{

       private String name;

       private String website;

       private String language;

       public String getName(){

                  return name;

}

         public void setName(String name){

        this.name=name;

}        

        public String getWebsite(){

        return website;

}

        public void setWebsite(String website){

       this.website=website;

}

       public String getLanguage(){

      return language;

}

      public void setLanguage(String language){

     this.language=language;

}

}

从上面的示例代码可以看到,我们使用了@Configuration注解、@ConfigurationProperties和@PropertySource三个注解来定义WebSiteProperties实体类:

1)@Configuration定义此类为配置类,用于构建bean定义并初始化到Spring容器。

2)@ConfigurationProperties(prefix="com.weiz.resource")绑定配置项,其中prefix表示所绑定的配置项的前缀。

3)@ProperSource(value="classpath:website.properties")指定读取的配置文件及其路径。

@PropertySource不支持引入YML文件。

通过上面的WebSiteProperties类即可读取全部对应的配置项。

3.调用配置项

使用配置实体类中的方式也非常简单,只需将WebSiteProperties注入到需要使用的类中,示例代码如下:

@Autowired

private WebSiteProperties website;

@Test

void getProperties(){

     System.out.println(website.getName());

    System.out.println(website.getWebsite());

    System.out.println(website.getLanguage());

}

 

 

http://www.lryc.cn/news/404172.html

相关文章:

  • ELK日志分析系统部署文档
  • ue5笔记
  • TCP重传机制详解
  • 如何使用javascript将商品添加到购物车?
  • 【MySQL】:想学好数据库,不知道这些还想咋学
  • 1.关于linux的命令
  • 【人工智能】机器学习 -- 决策树(乳腺肿瘤数)
  • 【proteus经典实战】LCD滚动显示汉字
  • 数据结构复习1
  • 订单管理系统需求规范
  • swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面
  • 深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数
  • elementUI在手机端使用遇到的问题总结
  • 【初阶数据结构】5.栈和队列
  • 高通Android 12 设置Global属性为null问题
  • Xcode代码静态分析:构建无缺陷代码的秘诀
  • Qt各个版本安装的保姆级教程
  • 数学建模--优劣解距离法TOPSIS
  • Springboot开发之 Excel 处理工具(三) -- EasyPoi 简介
  • 【BUG】已解决:python setup.py bdist_wheel did not run successfully.
  • Java 中如何支持任意格式的压缩和解压缩
  • 从零开始实现大语言模型(八):Layer Normalization
  • <数据集>混凝土缺陷检测数据集<目标检测>
  • 【LabVIEW作业篇 - 3】:数组相加、for循环创建二位数组、数组练习(求最大最小值、平均值、中位数、提取范围内的数据、排序)
  • Unity动画系统(4)
  • React基础学习-Day08
  • Flowable的学习一
  • django-vue-admin项目运行
  • 4. docker镜像、Dockerfile
  • 智能水果保鲜度检测:基于YOLO和深度学习的完整实现