当前位置: 首页 > 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());

}

 

 

相关文章:

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

3.1 系统配置文件 3.1.1 application.properties SpringBoot支持两种不同格式的配置文件,一种是Properties,一种是YML。 SpringBoot默认使用application.properties作为系统配置文件,项目创建成功后会默认在resources目录下生成applicatio…...

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch(ES) Logstash Kibana 这三个开源工具组成,官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…...

ue5笔记

1 点光源 聚光源 矩形光源 参数比较好理解 (窗口里面)环境光混合器:快速创造关于环境光的组件 大气光源:太阳光,定向光源 天空大气:蓝色的天空和大气 高度雾:大气下面的高度感的雾气 体积…...

TCP重传机制详解

1.什么是TCP重传机制 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回⼀个确认应答消息,表示已收到消息。 但是如果传输的过程中,数据包丢失了,就会使⽤重传机制来解决。TCP的重传机制是为了保证数据传输的…...

如何使用javascript将商品添加到购物车?

使用JavaScript将商品添加到购物车可以通过以下步骤实现: 创建一个购物车对象,可以是一个数组或者对象,用于存储添加的商品信息。在网页中的商品列表或详情页面,为每个商品添加一个“添加到购物车”的按钮,并为按钮绑…...

【MySQL】:想学好数据库,不知道这些还想咋学

客户端—服务器 客户端是一个“客户端—服务器”结构的程序 C(client)—S(server) 客户端和服务器是两个独立的程序,这两个程序之间通过“网络”进行通信(相当于是两种角色) 客户端 主动发起网…...

1.关于linux的命令

1.关于文件安装的问题 镜像站点服务器:cat /etc/apt/sources.list 索引文件:cd /var/lib/apt/lists 下载文件包存在的路径:cd /etc/cache/apt/archives/2.关于dpkg文件安装管理器的应用: 安装文件:sudo dpkg -i 文件名; 查找文件目录:sudo …...

【人工智能】机器学习 -- 决策树(乳腺肿瘤数)

目录 一、使用Python开发工具,运行对iris数据进行分类的例子程序dtree.py,熟悉sklearn机器实习开源库。 二、登录https://archive-beta.ics.uci.edu/ 三、使用sklearn机器学习开源库,使用决策树对breast-cancer-wisconsin.data进行分类。 …...

【proteus经典实战】LCD滚动显示汉字

一、简介 Proteus是一款功能丰富的电子设计和仿真软件,它允许用户设计电路图、进行PCB布局,并在虚拟环境中测试电路功能。这款软件广泛应用于教育和产品原型设计,特别适合于快速原型制作和电路设计教育。Proteus的3D可视化功能使得设计更加直…...

数据结构复习1

1、什么是集合? 就是一组数据的集合体,就像篮子装着苹果、香蕉等等,这些“水果”就代表数据,“篮子”就是这个集合。 集合的特点: 集合用于存储对象。 对象是确定的个数可以用数组,如果不确定可以用集合…...

订单管理系统需求规范

1. 引言 1.1 目的 本文档旨在明确描述订单管理系统的功能、非功能性需求以及约束条件,以指导系统的分析、设计、开发、测试和部署。 1.2 范围 本系统将支持在线订单处理,从客户下单到完成配送的全过程管理,包括库存管理、支付处理、订单跟…...

swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面

实现的效果如果所示,顶部的关注用户列表可以左右滑动,中间的内容区域是可以上下滚动的效果,点击顶部的toolbar也可以切换关注/发现/附近不同页面,实现翻页效果。 首页布局 这里使用了NavigationStack组件和tabViewStyle样式配置…...

深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数

引言 在处理字符串数据时,经常需要根据特定的分隔符来分割字符串或提取字符串的特定部分。MySQL 提供了一个非常有用的函数 SUBSTRING_INDEX 来简化这类操作。本文将详细介绍 SUBSTRING_INDEX 的使用方法、语法,以及通过实际案例来展示其在数据库查询中…...

elementUI在手机端使用遇到的问题总结

之前的博客有写过用vue2elementUI封装手机端选择器picker组件,支持单选、多选、远程搜索多选,最终真机调试的时候发现有很多细节样式需要调整。此篇博客记录下我调试过程中遇到的问题和解决方法。 一、手机真机怎么连电脑本地代码调试? 1.确…...

【初阶数据结构】5.栈和队列

文章目录 1.栈1.1 概念与结构1.2 栈的实现2.队列2.1 概念与结构2.2 队列的实现3.栈和队列算法题3.1 有效的括号3.2 用队列实现栈3.3 用栈实现队列3.4 设计循环队列 1.栈 1.1 概念与结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操…...

高通Android 12 设置Global属性为null问题

1、最近在做app调用framework.jar需求&#xff0c;尝试在frameworks/base/packages/SettingsProvider/res/values/defaults.xml增加属性 <integer name"def_xxxxx">1</integer> 2、在frameworks\base\packages\SettingsProvider\src\com\android\provide…...

Xcode代码静态分析:构建无缺陷代码的秘诀

Xcode代码静态分析&#xff1a;构建无缺陷代码的秘诀 在软件开发过程中&#xff0c;代码质量是至关重要的。Xcode作为Apple的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了强大的代码静态分析工具&#xff0c;帮助开发者在编写代码时发现潜在的错误和问题。…...

Qt各个版本安装的保姆级教程

文章目录 前言Qt简介下载Qt安装包安装Qt找到Qt的快捷方式总结 前言 Qt是一款跨平台的C图形用户界面应用程序开发框架&#xff0c;广泛应用于桌面软件、嵌入式软件、移动应用等领域。Qt的强大之处在于其高度的模块化和丰富的工具集&#xff0c;可以帮助开发者快速、高效地构建出…...

数学建模--优劣解距离法TOPSIS

目录 简介 TOPSIS法的基本步骤 延伸 优劣解距离法&#xff08;TOPSIS&#xff09;的历史发展和应用领域有哪些&#xff1f; 历史发展 应用领域 如何准确计算TOPSIS中的理想解&#xff08;PIS&#xff09;和负理想解&#xff08;NIS&#xff09;&#xff1f; TOPSIS方法在…...

Springboot开发之 Excel 处理工具(三) -- EasyPoi 简介

引言 Springboot开发之 Excel 处理工具&#xff08;一&#xff09; – Apache POISpringboot开发之 Excel 处理工具&#xff08;二&#xff09;-- Easyexcel EasyPoi是一款基于 Apache POI 的高效 Java 工具库&#xff0c;专为简化 Excel 和 Word 文档的操作而设计。以下是对…...

从QPushButton到QAction:Qt中‘可切换’控件的统一处理模式与实战技巧

从QPushButton到QAction&#xff1a;Qt中‘可切换’控件的统一处理模式与实战技巧 在构建复杂的Qt应用程序时&#xff0c;我们经常需要处理各种可切换状态的控件——从工具栏按钮到菜单项&#xff0c;从单选按钮到复选框。这些控件看似形态各异&#xff0c;但Qt框架通过统一的抽…...

Flutter + OpenHarmony 进度环组件开发实战

Flutter OpenHarmony 进度环组件开发实战 欢迎加入开源鸿蒙跨平台社区→ https://openharmonycrosplatform.csdn.net 一、效果展示 &#x1f4f1; 运行效果预览 在鸿蒙虚拟机上运行后的实际效果如下&#xff1a; 基础样式 &#xff1a;实线进度环 - 圆滑的实线进度条渐变进度环…...

基于Claude API的智能代理框架:从对话到执行的AI应用开发实践

1. 项目概述&#xff1a;一个为Claude API设计的智能代理框架最近在折腾AI应用开发&#xff0c;特别是围绕Anthropic的Claude API构建一些自动化工作流时&#xff0c;发现了一个挺有意思的开源项目——openclaw-claude-delegate。这个项目本质上是一个为Claude设计的“智能代理…...

量子计算误差缓解与基准测试技术解析

1. 量子优化问题中的误差缓解与基准测试挑战在量子计算领域&#xff0c;噪声和误差一直是阻碍实现量子优势的主要障碍。特别是在量子优化问题中&#xff0c;如寻找物理系统的基态能量&#xff0c;量子电路的深度和复杂度使得计算结果极易受到噪声影响。传统基准测试方法往往忽略…...

2026 年手机市场供应受限价格上涨,旧款机型性价比更高成优选

2026 年新手机的困境智能手机市场因内存芯片供应受限而面临压力。2026 年推出的手机表现平平&#xff0c;且许多都提了价。2025 年的顶级手机如今正在打折&#xff0c;相比新设备&#xff0c;它们是更划算的选择。根据 IDC 12 月的报告&#xff0c;PC、智能手机和其他消费电子产…...

2026年必看:精选靠谱电商公司,购物无忧新选择

随着电商行业的发展进入精细化、全域化运营阶段&#xff0c;品牌对第三方代运营公司的专业度和技术能力要求越来越高。在这样的背景下&#xff0c;我们为大家精选了几家在特定领域或区域市场具备显著特色的电商代运营企业&#xff0c;帮助大家更好地理解当前市场上的优质服务商…...

避坑指南:TMS320F28377D的TMU加速库,在CCS里到底该怎么正确配置与验证?

TMS320F28377D TMU加速库实战&#xff1a;CCS工程配置与性能验证全解析 在C2000系列DSP开发中&#xff0c;TMU&#xff08;Trigonometric Math Unit&#xff09;作为28377D独有的硬件加速模块&#xff0c;能显著提升三角函数和除法运算效率。但许多工程师反映&#xff0c;即便在…...

从零部署OpenClaw AI助手:托管与自建方案全解析

1. 项目概述&#xff1a;从零到一&#xff0c;部署你的专属AI助手服务器如果你对AI助手的概念还停留在网页聊天框&#xff0c;那么OpenClaw可能会颠覆你的认知。它不是一个简单的聊天机器人&#xff0c;而是一个能运行在你自己的服务器上&#xff0c;拥有完整文件系统访问、代码…...

使用 Taotoken 为 OpenClaw Agent 工作流配置统一模型接入点

使用 Taotoken 为 OpenClaw Agent 工作流配置统一模型接入点 1. 准备工作 在开始配置之前&#xff0c;请确保您已经完成以下准备工作。首先&#xff0c;登录 Taotoken 控制台并创建一个 API Key&#xff0c;该 Key 将用于 OpenClaw 与 Taotoken 平台的认证。其次&#xff0c;…...

MyBatis动态SQL避坑指南:处理‘>=‘、‘<=‘等符号,用转义还是CDATA?看完这篇不再纠结

MyBatis动态SQL中特殊符号处理的深度实践指南 1. 问题背景与核心痛点 在电商后台系统的商品筛选模块开发中&#xff0c;我们经常需要构建包含价格区间、库存数量等多重条件的动态SQL查询。上周团队新来的工程师小王就遇到了一个典型问题——他在MyBatis的XML映射文件中编写的范…...