SpringBoot:配置相关知识点

SpringBoot:多环境配置

配置知识点demo:点击查看LearnSpringBoot02

点击查看更多的SpringBoot教程

一、@SpringBootApplication

@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用,运行这个类的main方法来启动SpringBoot应用
在这里插入图片描述

二、@Configuration

@Configuration 指明当前类是一个配置类,就是来替代之前的Spring配置文件
在配置文件里通过 标签来添加组件
在这里插入图片描述
测试结果图
在这里插入图片描述

三、配置文件注入

1、@ConfigurationProperties

将配置文件中的每一个属性的值,映射到这个组件中;
@ConfigurationProperties作用:告诉springboot 将本类中的所有属性和配置文件中相关的配置进行绑定;
prefix = “” 配置文件中哪个下面的所有属性进行一一映射
只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
支持JSR303进行配置文件值校验

2、 @Validated

@Validated的作用:对数据进行校验,只有在 ConfigurationProperties 配置里生效;
当校验不通过的时候,程序会抛出400异常,阻止方法中的代码执行,这时需要再写一个全局校验异常捕获处理类,然后返回校验提示。

示例person.java代码图
在这里插入图片描述
在这里插入图片描述

测试person配置类结果
在这里插入图片描述

3、 @Value

@Value只能读取基本类型的数据,复杂类型的不支持;
不支持JSR303数据校验;

示例person2.java图
在这里插入图片描述

@ImportResource

@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效:

示例LearnSpringBoot02Application.java代码
在这里插入图片描述

beans.xml代码
在这里插入图片描述

测试@ImportResource结果
在这里插入图片描述

pom.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.1</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example.springconfig</groupId><artifactId>LearnSpringBoot02</artifactId><version>0.0.1-SNAPSHOT</version><name>LearnSpringBoot02</name><description>Demo project for Spring Boot Config</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--        JSR303数据校验--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><!--导入配置文件处理器,配置文件进行绑定就会有提示https://docs.spring.io/spring-boot/docs/3.1.1/reference/html/configuration-metadata.html#appendix.configuration-metadata.annotation-processor
--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

睿尔曼超轻量仿人机械臂-- RM65-B手眼标定使用说明

一、前言 机器人的视觉系统分为固定场景视觉系统和运动的「手-眼」视觉系统。相机与机器人手臂末端&#xff0c;构成手眼视觉系统。根据相机在机器人安装位置的不同&#xff0c;手眼视觉系统分为Eye-in-Hand系统&#xff08;眼在手上&#xff09;和Eye-to-Hand系统&#xff08…

Javascript | 打印菱形

Javascript打印菱形&#xff0c;在校大学生可以拿来糊弄作业&#xff08;笑&#xff09; var str ; for (var i 1; i < 9; i) {if (i < 5) {for (var k1 1; k1 < 5 - i; k1) {str ;}} else {for (var k2 1; k2 < i - 5; k2) {str ;}}if (i < 5) {for (…

Curl 使用指南(进阶版)

使用Curl可以轻松GET资源、发送POST请求、定制HTTP头。高级技巧如代理、Cookie、证书 一、Curl 的基本用法 curl [options] [URL]options &#xff1a;指定 Curl 的行为的选项 URL &#xff1a;要访问的资源的地址 支持一下&#xff1a; Python Gui图形化开发 MySQL使用教程 …

开源软件:推动技术创新的引擎

目录 前言1 低成本、可协作性和透明度的特点1.1 社区化开发模式的催生1.2 成本效益的体现1.3 透明度的增强 2 开放协议的关键作用2.1 保障知识产权的开源协议2.2 灵活性与自由的MIT协议2.3 广泛应用的Apache协议 3 安全风险的审慎考虑3.1 潜在的恶意代码威胁3.2 定期安全审查的…

C++中RTTI实现原理

目录 1.引言 2.typeid 2.1.虚函数表&#xff08;vtable&#xff09; 2.2.类型信息&#xff08;type_info&#xff09; 3.dynamic_cast 4.缺陷 5.一些库/软件提供的RTTI实现 5.1. CATIA的RTTI 5.2. QT的RTTI 5.3. FreeCAD的RTTI 6.实例 7.总结 1.引言 RTTI是Runtime…

opencv——照片裁剪/照片斜的摆正

图片裁剪 流程描述 # 1. 读取原图 # 2. 彩图转为灰度图 # 3. 灰度图转二值图 # 4. 找到最大的轮廓 # 5. 找到轮廓的包围矩形 # 6. 根据外切矩形,图片的剪切 步骤 1. 读取原图 img = cv.imread("img/01_qiebian.jpg",cv.IMREAD_COLOR) 2. 彩图转为灰度图 #转灰度…

2024/2/5

第四章 堆与拷贝构造函数 一 、程序阅读题 1、给出下面程序输出结果。 #include <iostream.h> class example {int a; public: example(int b5){ab;} void print(){aa1;cout <<a<<"";} void print()const {cout<<a<<endl;} …

信任与创新 | 回顾通付盾的2023!

-END- 数信云&#xff0c;基于区块链与人工智能的数据安全应用与服务平台

【Spring】Spring 启示录

一、OCP 开闭原则 核⼼&#xff1a;在扩展系统功能时不需要修改原先写好的代码&#xff0c;就是符合OCP原则的&#xff0c;反之修改了原先写好的代码&#xff0c;则违背了OCP原则的 若在扩展系统功能时修改原先稳定运⾏程序&#xff0c;原先的所有程序都需要进⾏重新测试&…

N-143基于springboot博客系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;AdminLTEHTML 服务端技术&#xff1a;springbootmybatis-plusthymeleaf 本项目分前台和后台&#xff0c;主要有普…

FM波的调制与解调

一、实验原理 1.FM的调制 产生调频信号有两种方法&#xff0c;直接调频法和间接调频法。间接调频法就是可以通过调相间接实现调频的方法。但电路较复杂&#xff0c;频移小&#xff0c;且寄生调幅较大&#xff0c;通常需多次倍频使频移增加。对调频器的基本要求是调频频移大&am…

如何实现一个(PE 文件)内存加载器(来自ChatGPT)

实现一个内存加载器&#xff08;通常指的是一个PE Loader&#xff0c;用于在内存中加载和执行Windows可执行文件&#xff09;是一项复杂的工作&#xff0c;它涉及对PE文件格式的深入了解以及对Windows操作系统内部工作机制的理解。下面是一个简化版本的概述&#xff0c;用于描述…

大数据Doris(六十三):基于Doris的有道精品课数据中台建设实践

文章目录 基于Doris的有道精品课数据中台建设实践 一、背景

【Java程序设计】【C00245】基于Springboot的家政服务管理平台(有论文)

基于Springboot的家政服务管理平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的家政服务管理平台 本系统分为前台模块、管理员功能模块、用户功能模块以及服务人员功能模块。 前台模块&#xff1a;系统首页的…

R语言入门笔记2.1

分支、循环与函数&#xff08;1&#xff09; 1.if语句 在R语言中&#xff0c;if语句用于根据条件执行不同的代码块。其基本语法如下&#xff1a; if (condition) {# 如果条件为真&#xff0c;执行这里的代码块 } else {# 如果条件为假&#xff0c;执行这里的代码块 } 其中&…

vue H5 跳转到uniAPP小程序并传参

uni-app小程序部分问题无法解决&#xff0c;采用webview-&#xff08;vue&#xff09;独立开发一部分功能&#xff0c;需要来回跳转并携带参数&#xff1b;官网文档很多写的不详细&#xff0c;遇到很多坑&#xff0c;这里记录一下。 uni-app小程序跳转至网页并互相带参_情已得…

Spring IOC 之深入分析 Aware 接口

&#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是小徐&#x1f947;☁️博客首页&#xff1a;CSDN主页小徐的博客&#x1f304;每日一句&#xff1a;好学而不勤非真好学者 &#x1f4dc; 欢迎大家关注&#xff01; ❤️ &#xfeff;AbstractAutowireCapableBeanFacto…

力扣分式化简

题目描述&#xff1a; 有一个同学在学习分式。他需要将一个连分数化成最简分数&#xff0c;你能帮助他吗&#xff1f; 连分数是形如上图的分式。在本题中&#xff0c;所有系数都是大于等于0的整数。 输入的cont代表连分数的系数&#xff08;cont[0]代表上图的a0&#xff0c;以…

突破编程_C++_基础教程(指针)

1 指针的基础概念 指针是 C 的核心之一&#xff0c;使用 C 语言构建的程序之所以性能强悍&#xff0c;有很大部分原因是体现在使用指针直接操作内存。当然这样的工具是一把双刃剑&#xff0c;错误的指针操作可能会导致程序崩溃或者数据损坏。 指针主要有四个方面的用途&#x…

对象分配内存时的指针碰撞与空闲列表机制

指针碰撞 如果java堆中的内存时绝对规整的&#xff0c;所有用过的内存都放在一边&#xff0c;空闲的内存都放在另一边&#xff0c;中间放着一个指针作为分界点的指示器&#xff0c;那所分配内存就是仅仅把那个指针指向空闲空间那边挪动一段与对象大小相等的距离。 空闲列表 …