Spring Boot 核心配置与注解02——配置文件属性值的注入

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

1.使用@ConfigurationProperties注入属性
Spring Boot提供的@ConfigurationProperties注解将配置文件中的自定义属性值批量的注入到某个Bean对象的多个属性中。具体方法可以参考全局配置文件中的例子。
如果是自定义的配置文件,需要在配置类中加入@Configuration或者@Component 和 @PropertySource注解。
@Configuration注解用于表示当前类是一个自定义配置类,该类会作为Bean对象添加到Spring容器中,这里等同于@Component注解
@@PropertySource注解指定自定义配置文件的位置和名称。
如果使用的是@Configuration注解,则需要使用@EnableConfigurationProperties注解表示开启对应配置类的属性注入功能,如果使用的是@Component注解,则@EnableConfigurationProperties注解就可以省略。
2.使用@Value注入属性
@Value注解是Spring框架提供的,用来读取配置文件中的属性值并逐个注入Bean对象的对应属性中。Spring Boot框架对Spring框架中的@Value注解进行了默认继承,所以在Spring Boot框架中还可以使用该注解读取和注入配置文件属性值。
例子:

public class Pet {
    @Value("${pet.type}")
    private String type;

@Value不仅支持注入属性,还可以直接为属性赋值,这是@ConfigurationProperties不支持的。
3.两种注解的比较

对比点@ConfigurationProperties@Value
底层框架Spring BootSpring
功能批量注入单个注入
setter方法需要不需要
杂类型属性值注入支持不支持
松散绑定支持不支持
JSR303数据校验支持不支持
SpEL表达式不支持支持

具体说明:
1.底层框架
@ConfigurationProperties注解是Spring Boot框架自带的;而@Value注解是Spring框架支持的,只不过Spring Boot框架对Spring进行了默认支持,所以也可以使用@Value注解的相关功能。
2.功能
@ConfigurationProperties注解能够将配置文件中的属性批量注入到Bean对象中,而@Value智能单个注入。
3.setter方法
在使用@ConfigurationProperties注解进行配置文件属性值注入时,还必须为每个属性设置setter方法。如果配置文件中没有配置相应属性,则会自动将对应的Bean属性设置为空。@Value不需要为属性设置setter属性。
4.复杂类型属性注入
@ConfigurationProperties支持任意数据类型的属性注入,包括基础数据类型和复杂数据类型,@Value只能诸如基本类型的属性。
5.松散绑定
@ConfigurationProperties注解进行配置文件属性注入时,支持松散绑定语法。例如Person类中有一个字符串类型的属性firstName,那么在配置文件中可以如下语句进行配置

person.firstName=ddd //标准写法
person.FIRST_NAME=ddd //使用大写字母,并用下划线“_”分割
person.first-name=ddd //使用横线“-”分割
person.first_name=ddd //使用下划线“_”分割

@Value注解不支持松散绑定语法。
6.JSR303数据校验
@ConfigurationProperties注解进行配置文件属性注入时,支持JSR303数据校验。其主要作用是校验配置文件中注入对应Bean对象的属性值是否符合相关值的规则。
@Value注解不支持JSR303数据校验功能
7.SpEL表达式
@Value注解注入配置文件属性时,支持SpEL表达式语法,即“#{xx}”。例如Person类有一个整型的属性id

    @Value("#{5*2}")
    private int id;

@ConfigurationProperties注解不支持该功能。
————————————————————————————————————————
参考资料《Spring Boot企业级开发教程》

SpringBoot 2.x学习(三):为属性注入配置文件中的:@Value 注解使用 文章目录@Value 注解的简单介绍@Value 注解使用 @Value 注解的简单介绍 @Value 注解使用 阅读详情

相关推荐

Spring Boot 核心注解配置:深入理解自动配置原理

SpringBoot核心注解配置机制解析 摘要:本文系统分析了SpringBoot核心注解体系配置机制。核心注解包括启动类注解@SpringBootApplication、自动配置相关注解及条件注解,它们共同实现了"约定优于配置"的理念。自动配置原理通过扫描候选配置类、条件筛选和加载顺序控制实现智能配置配置文件支持properties和yaml格式,并提供多环境配置方案。文章还介绍了自定义Starter的方法,包含自动配置类、属性类和注册机制,最后总结了查看自动配置报告、覆盖默认

Java&AI小吕布的博客 1115

Spring Boot注解@ConfigurationProperties的三种使用场景

Spring Boot注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景。本篇文章带大家了解一下三种场景的使用情况。 场景一 使用@ConfigurationProperties和@Component注解到bean定义类上,这里@Component代指同一类实例化Bean的注解。 基本使用实例如下: // 将类定义为一个bean的...

程序新视界 5万+

Spring Boot企业级开发教程-第二章 SpringBoot核心配置注解

相关注解@PropertySource:指定自定义配置文件的位置和名称@Configuration:自定义配置类,Spring容器组件案例演示1、创建Spring Boot项白,添加Web依赖。2、在项目的类路径下新建一个test.properties自定义配置文件,在该配置文件中编写需要设置的配置属性。#对实体类对象MyProperties进行属性配置

rc4gyyc的博客 1904

SpringBoot 学习笔记:配置文件属性注入

hero: name: 张三 age: 26 friend: - name: 李四 age: 22 friend [] - { name: 王五, age: 28, friend []} weapon: id: 110 price: 99 @Value("${hero.name}") private String name; @ConfigurationProperties(prefix = "hero") public class Hero{ private

灵台方寸山斜月三星洞 3735

SpringBoot配置文件属性值注入

配置文件属性值注入 一、属性值分类 1、系统默认属性 如果配置的是springboot已有属性,那么springboot在全局扫描时,能够对其自动扫描并识别,,同时对原来的默认进行覆盖。 2、自定义属性 如果是自己自定义的属性值springboot是不识别的,如果想使得这些属性生效,那么要对这些属性进行注入。 二、属性值注入注解 1、@Component注解 生成当前类的实例对象,存到IOC容器中。 2、@ConfigurationProperties(prefix = “xxx”)注解 (1)批量注

熊凯瑞的博客 1968

@ConfigurationProperties注解配置文件注入到Java Bean

Spring Boot学习笔记(五):我们已经知道 Spring Boot使用的是.properties 和 .yml 两个格式的配置文件。下面就来介绍:Spring Boot 配置文件中的,如何注入到我们自定义的 Java Bean 中。(或者:Java Bean 如何获取配置文件中的注入) 如下分别为 Java Bean类和 yml 配置...

扛麻袋的少年的博客 7271

Spring Boot部分核心配置注解

这篇文章主要讲文件的配置和相关注解使用方法,希望对大家有点帮助。一、全局配置文件全局配置文件能够针对一些默认配置进行修改。使用application。properties或者application.yaml的文件作为全局配置文件。以上主要讲解了全局配置使用配置文件属性值注入。希望以上所讲的知识能够对大家有所帮助。

2302_82101869的博客 1717

Spring Boot | Spring Boot的“核心配置注解

目录: Spring Boot核心配置注解 : 1. 全局配置文件 ( application.properties / application.yaml:创建项目时候自动生成,其会被“自动导入”到“程序”中 ) application.properties配置文件 application.yaml 配置文件 (推荐使用) 当value为 “普通数据类型” (如 : 数字、字符串、布尔等) 当value为 “数组” 或 “单列集合” 当value为 “Map集合” 或 “对象类型” .....

m0_70720417的博客 1610

Spring Boot 核心配置注解,数据访问

Spring Boot支持自定义配置,以满足特定需求。‌‌:加载自定义的properties文件。通过在配置类上使用注解指定自定义配置文件的路径和名称。‌‌:加载XML配置文件。通过注解导入XML配置文件,实现更复杂的配置需求。‌‌:定义配置类。使用注解的类会被Spring容器识别为配置类,在该类中使用@Bean注解定义Bean,实现自定义配置

xfwchen的博客 1718

Spring Boot 核心配置注解

3.1 @SpringBootApplication: @SpringBootApplication 注解Spring Boot 项目中最重要的注解之一。该注解用于标识一个主程序类,并告知 Spring Boot 项目的入口位置。Spring Boot 核心注解 3.1 @SpringBootApplication 3.2 @Configuration 3.3 @ComponentScan 3.4 @Autowired 3.5 @Value 3.6 @EnableAutoConfiguration。

2301_80407229的博客 1074

Spring Boot核心配置注解

Spring Boot核心配置注解全局配置文件application.properties配置文件application.yaml配置文件配置文件属性值注入使用@ConfigurationProperties注入属性使用@Value注入属性两种注解对比分析Spring Boot自定义配置使用@PropertySource加载配置文件使用@importResource加载XML配置文件使用@Configuration编写自定义配置类 全局配置文件 全局配置文件能够对一些默认配置进行修改,Spring B

qq_50834939的博客 1907

2、spring boot核心配置注解

模块化管理:自定义配置类可以根据功能或模块将配置属性分散到不同的类中,从而实现更有效的模块化管理。每个配置类可以专注于特定部分的配置,使代码组织更清晰。关注点分离:通过使用多个自定义配置类,可以将不同类型的配置属性分组到不同的类中,实现了关注点的分离。这使得代码更易于理解、扩展和维护。类型安全:结合注解,自定义配置类可以实现类型安全的配置属性注入,避免了手动类型转换和可能出现的类型错误。灵活性。

博客 1467

Spring boot面试题----Spring Boot核心注解有哪些

Spring boot面试题----Spring Boot核心注解有哪些

qq_38737545的博客 1260

Spring Boot配置配置文件属性值注入

文章目录Spring Boot核心配置配置文件属性值注入目标全局文件配置application.propertiesapplication.yml文件配置使用@ConfigurationProperties注入属性使用@PropertySource加载自定义配置文件使用@ImportResource加载XML配置文件使用@Configuration编写自定义配置Spring Boot核心配...

m0_47354578的博客 691

Spring Boot核心配置注解

Spring Boot核心配置注解 Spring Boot全局配置文件 1、application.properties 2、application.yaml 全局配置文件能对一些默认配置进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件。 存放路径:src/main/resource目录或者类路径的/config下。 application.properties 使用Spring Initializr方式构

shi_zi_183的博客 2064

Spring Boot常用注解

Spring Boot 常用的注解主要分为以下几类,涵盖核心功能、Web 开发、数据访问和配置等方面。

caicaizhui的博客 1542

spring boot核心配置注解

项目在开发过程中,会有几个不同的环境如开发、测试、生产等,每个环境的数据库地址、服务器端口等的配置不同,则需要通过配置文件,进行多环境的应用配置Spring Boot进行项目开发,可以轻松各种工具、框架集成,开发过程中,离不开各种配置文件的处理,例如某公司资产管理系统在开发过程中,除了需要对服务器、数据访问、系统属性等进行配置,还需要对一些默认配置进行修改。1.Spring Boot自定义配置#对实体类对象MyProperties进行属性配置

2301_76255883的博客 545

Java Spring Boot 常用技术及核心注解

默认集成 Tomcat、Jetty 或 Undertow,无需单独部署 WAR 文件。Spring Boot 根据类路径中的依赖自动配置应用程序。会自动配置内嵌 Tomcat 和 Spring MVC。提供生产级监控端点(如健康检查、性能指标),通过。)简化依赖管理,避免版本冲突。通过预定义的依赖集合(如。

Steven的博客 842

Spring Boot 常用注解的分类及简明解释

根据实际需求选择合适的注解,可大幅提升开发效率!

2501_90417743的博客 1759
上一篇: Spring Boot 核心配置与注解01—— 全局配置文件
下一篇: Spring Boot 核心配置与注解03——自定义配置
oplisc
博客等级 码龄5年 3粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值