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

网站建设怎么申请域名站长工具官网域名查询

网站建设怎么申请域名,站长工具官网域名查询,wordpress出现500错误,mac下安装wordpressSpringBoot中Value获取值和ConfigurationProperties获取值用法及比较 更新时间:2024年08月08日 09:41:48 作者:岳轩子 在Spring Boot中,Value注解是一个非常有用的特性,它允许我们将外部的配置注入到我们的Bean中,ConfigurationProperties用于将配置文件…

SpringBoot中@Value获取值和@ConfigurationProperties获取值用法及比较
更新时间:2024年08月08日 09:41:48 作者:岳轩子
在Spring Boot中,@Value注解是一个非常有用的特性,它允许我们将外部的配置注入到我们的Bean中,@ConfigurationProperties用于将配置文件中的属性绑定到 Java Bean 上,本文介绍了@Value获取值和@ConfigurationProperties获取值用法及比较,需要的朋友可以参考下

  1. 简介

1.1 @value
在Spring Boot中,@Value注解是一个非常有用的特性,它允许我们将外部的配置(如application.properties或application.yml文件中的属性)注入到我们的Bean中。这对于读取配置信息,如数据库连接信息、服务地址等,非常有用。

基本用法

@Value注解可以应用于字段、setter方法或配置方法上。它使用SpEL(Spring Expression Language)表达式来读取配置值。

1.2 @ConfigurationProperties
@ConfigurationProperties 是 Spring Boot 提供的一个非常强大的注解,用于将配置文件中的属性绑定到 Java Bean 上。与 @Value 注解相比,@ConfigurationProperties 提供了更丰富的特性,比如松散绑定(relaxed binding)、JSR-303 数据校验以及复杂的类型绑定等。

基本用法

定义一个配置类:首先,你需要定义一个配置类,并使用 @ConfigurationProperties 注解来指定配置的前缀。
启用配置属性绑定:默认情况下,Spring Boot 会自动扫描带有 @ConfigurationProperties 注解的类,并将它们注册为 Spring 应用上下文中的 bean。但是,如果你想要精确地控制哪些配置类被注册,你可以在 @EnableConfigurationProperties 注解中指定它们。
在配置文件中设置属性:在 application.properties 或 application.yml 文件中设置与配置类属性相对应的配置项。

  1. 使用

2.1 @value的使用
首先创建springboot的项目

创建application.yml

person:name : 岳轩子sex : 雄age : 18birthday : 2002/2/31maps : { k1 : 20 , k2 : 21}lists : [小黄 , 小黑]dog:name : 旺财

创建Person.java

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;import java.util.Date;
import java.util.List;
import java.util.Map;@Component
@Validated
public class Person {@Value("${person.name}")private String name;@Value("${person.sex}")private Character sex;@Value("${person.age}")private Integer age;@Value("${person.birthday}")private Date birthday;private Map<String, Integer> maps;private List<String> lists;private Dog dog;public String getName() {return name;}public void setName(String name) {this.name = name;}public Character getSex() {return sex;}public void setSex(Character sex) {this.sex = sex;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Map<String, Integer> getMaps() {return maps;}public void setMaps(Map<String, Integer> maps) {this.maps = maps;}public List<String> getLists() {return lists;}public void setLists(List<String> lists) {this.lists = lists;}public Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", sex=" + sex +", age=" + age +", birthday=" + birthday +", maps=" + maps +", lists=" + lists +", dog=" + dog +'}';}
}

2.2 @ConfigurationProperties的用法
创建Person2.java

package com.example.springbootdaily.model;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;import java.util.Date;
import java.util.List;
import java.util.Map;@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person2 {private String name;private Character sex;private Integer age;private Date birthday;private Map<String, Integer> maps;private List<String> lists;private Dog dog;public String getName() {return name;}public void setName(String name) {this.name = name;}public Character getSex() {return sex;}public void setSex(Character sex) {this.sex = sex;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Map<String, Integer> getMaps() {return maps;}public void setMaps(Map<String, Integer> maps) {this.maps = maps;}public List<String> getLists() {return lists;}public void setLists(List<String> lists) {this.lists = lists;}public Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", sex=" + sex +", age=" + age +", birthday=" + birthday +", maps=" + maps +", lists=" + lists +", dog=" + dog +'}';}
}
  1. 区别
    在这里插入图片描述

3.1 松散绑定
@ConfigurationProperties 的松散绑定(relaxed binding)是 Spring Boot 提供的一个特性,它允许你在配置文件中使用不同的命名风格(如驼峰命名、短横线分隔等),而 Spring Boot 能够自动地将其映射到 Java Bean 的属性上。这种特性使得配置文件的编写更加灵活,同时也使得 Java Bean 的属性命名更加符合 Java 的命名习惯。

松散绑定的工作原理:
当你使用 @ConfigurationProperties 注解来绑定配置文件中的属性时,Spring Boot 会尝试根据以下规则来匹配属性名:

驼峰命名与短横线分隔的互转:如果你的 Java Bean 属性使用驼峰命名(如 myProperty),那么你可以在配置文件中使用短横线分隔的形式(如 my-property)来设置这个属性的值。Spring Boot 会自动地将这两种命名风格进行转换。
忽略大小写:在松散绑定中,大小写通常会被忽略,但请注意,这取决于你使用的配置文件格式(如 YAML 是大小写敏感的,而 properties 文件则不是)。然而,即使对于大小写敏感的文件格式,Spring Boot 也会尝试以智能的方式匹配属性名。
环境变量:对于环境变量,松散绑定的规则也适用。通常,环境变量名使用大写字母和下划线(如 MY_PROPERTY),而 Java Bean 属性则使用驼峰命名。Spring Boot 能够处理这种差异。
例子

application.yml
这里的name中间加了一个线

person:na-me : 岳轩子sex : 雄age : 18birthday : 2002/2/31maps : { k1 : 20 , k2 : 21}lists : [小黄 , 小黑]dog:name : 旺财

仍然可以获取
运行结果:

Person{name=‘岳轩子’,
3.2 SpEL
SpEL(Spring Expression Language)是 Spring 框架中的一个功能强大的表达式语言,它支持在运行时查询和操作对象图。SpEL 是一种类似于 JSP EL(JavaServer Pages Expression Language)但功能更强大的表达式语言,它用于在运行时查询和操作数据。

主要用途

Bean 属性的动态访问:在 Spring 配置文件中,你可以使用 SpEL 来动态地访问和设置 Bean 的属性。
注解中的属性值:在 Spring 的注解中,你也可以使用 SpEL 来设置注解的属性值。
XML 配置中的属性值:在 Spring 的 XML 配置文件中,可以通过 标签的 value 或 ref 属性结合 SpEL 来设置属性值。
@Value 注解:在 Java 代码中,可以使用 @Value 注解结合 SpEL 来注入配置值或计算结果。

特点

功能强大:支持基本运算、关系运算、逻辑运算、正则表达式匹配、集合操作等。
易于使用:语法简洁,易于学习和使用。
集成性好:与 Spring 框架紧密结合,可以在 Spring 的各种场景中使用。

例子
在这里插入图片描述
运行结果

age=20,

3.3 JSP303数据校验
先导入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

这里是@Value,不支持

@Email
@Value("${person.name}")
private String name;

如果不是email的话,会报错
在这里插入图片描述
3.4 复杂类型封装
前面已经使用了,@Value不能封装map,list和对象类型
但是@ConfigurationProperties可以

以上就是SpringBoot中@Value获取值和@ConfigurationProperties获取值用法及比较的详细内容,更多关于@Value和@ConfigurationProperties比较的资料请关注脚本之家其它相关文章!

来源:
https://www.jb51.net/program/325543kt3.htm


文章转载自:
http://dinncoungainly.zfyr.cn
http://dinncoecuador.zfyr.cn
http://dinncomuskiness.zfyr.cn
http://dinncocommendably.zfyr.cn
http://dinncoasquint.zfyr.cn
http://dinncobasque.zfyr.cn
http://dinncovivandiere.zfyr.cn
http://dinncoburette.zfyr.cn
http://dinncocredibility.zfyr.cn
http://dinncoregimental.zfyr.cn
http://dinncosorbose.zfyr.cn
http://dinncomeshugaas.zfyr.cn
http://dinncocarnaby.zfyr.cn
http://dinncocrustose.zfyr.cn
http://dinncoancipital.zfyr.cn
http://dinncopentachord.zfyr.cn
http://dinncooverceiling.zfyr.cn
http://dinncoaustraloid.zfyr.cn
http://dinncoaconitum.zfyr.cn
http://dinncovainness.zfyr.cn
http://dinncoioe.zfyr.cn
http://dinncocalputer.zfyr.cn
http://dinncoabundant.zfyr.cn
http://dinncokneepad.zfyr.cn
http://dinncooversail.zfyr.cn
http://dinncoestanciero.zfyr.cn
http://dinncojudaeophobia.zfyr.cn
http://dinncognatcatcher.zfyr.cn
http://dinncoyourselves.zfyr.cn
http://dinncoderringer.zfyr.cn
http://dinncosynchronous.zfyr.cn
http://dinncoscotophase.zfyr.cn
http://dinncomany.zfyr.cn
http://dinncocalciphile.zfyr.cn
http://dinncoinn.zfyr.cn
http://dinncohaiphong.zfyr.cn
http://dinncosfx.zfyr.cn
http://dinncohtml.zfyr.cn
http://dinncosnathe.zfyr.cn
http://dinncophleboid.zfyr.cn
http://dinncoacrogenous.zfyr.cn
http://dinncospasmogen.zfyr.cn
http://dinncoembryologist.zfyr.cn
http://dinncothievishly.zfyr.cn
http://dinnconunnation.zfyr.cn
http://dinncoermentrude.zfyr.cn
http://dinncoeurythmics.zfyr.cn
http://dinncoradiomicrometer.zfyr.cn
http://dinncobalconied.zfyr.cn
http://dinncoisomerase.zfyr.cn
http://dinncopartiality.zfyr.cn
http://dinncoarchaean.zfyr.cn
http://dinncogosain.zfyr.cn
http://dinncoscattergun.zfyr.cn
http://dinncone.zfyr.cn
http://dinncococksfoot.zfyr.cn
http://dinncounwitting.zfyr.cn
http://dinncobag.zfyr.cn
http://dinncoteuton.zfyr.cn
http://dinncocortin.zfyr.cn
http://dinncosoli.zfyr.cn
http://dinncogravenhurst.zfyr.cn
http://dinncomaidenhead.zfyr.cn
http://dinncogent.zfyr.cn
http://dinncohyperbatic.zfyr.cn
http://dinncothp.zfyr.cn
http://dinncobarehanded.zfyr.cn
http://dinncoradiosurgery.zfyr.cn
http://dinncopeptalk.zfyr.cn
http://dinncotonal.zfyr.cn
http://dinncoepistoma.zfyr.cn
http://dinncoanabantid.zfyr.cn
http://dinncotransformism.zfyr.cn
http://dinncoinlaut.zfyr.cn
http://dinncoseremban.zfyr.cn
http://dinncosuperstate.zfyr.cn
http://dinncoinsipient.zfyr.cn
http://dinncoisd.zfyr.cn
http://dinncocalcify.zfyr.cn
http://dinncoebbet.zfyr.cn
http://dinncoebcdic.zfyr.cn
http://dinncotranscription.zfyr.cn
http://dinncoligation.zfyr.cn
http://dinncoglobosity.zfyr.cn
http://dinncochaetopod.zfyr.cn
http://dinncolido.zfyr.cn
http://dinncoobjectively.zfyr.cn
http://dinncocoadjutor.zfyr.cn
http://dinncoiturup.zfyr.cn
http://dinncojabber.zfyr.cn
http://dinncomarengo.zfyr.cn
http://dinncocarcinectomy.zfyr.cn
http://dinncosincerely.zfyr.cn
http://dinncoqueenless.zfyr.cn
http://dinncotransductant.zfyr.cn
http://dinncogrunge.zfyr.cn
http://dinncoridge.zfyr.cn
http://dinncograndparent.zfyr.cn
http://dinncoperiproct.zfyr.cn
http://dinncoprehistorical.zfyr.cn
http://www.dinnco.com/news/154338.html

相关文章:

  • 三元桥做网站的公司百度竞价推广运营
  • 建设一个淘宝客网站推广方案策略怎么写
  • 宁波网站建设与设计开发正规百度推广
  • wordpress category页面seo 最新
  • 网站策划编辑常用的网络推广方法有
  • 楼书设计素材网站seo培训学什么
  • 国外汽车配件网站模板优化问题
  • 网站建设 英语毛戈平化妆培训学校官网
  • 网站为什么做版心限制seo自学网app
  • 网站备案局快速刷排名seo软件
  • 山东建设科技产品推广网站网站制作工具
  • 海口快速建站公司推荐网络营销策划方案模板
  • 网站建设空间步骤详解网址大全导航
  • 湖北营销型网站建设多少钱广州市新闻最新消息
  • wordpress回帖可见seo优化网站推广专员招聘
  • 200平别墅装修25万效果关键词优化快排
  • 做招聘网站代理商需要多少钱企业网站制作费用
  • 海门网站制作优化大师apk
  • 邯郸网站设计有哪些公司网站开发费用
  • 建设企业官方网站的流程淘宝新店怎么快速做起来
  • 做平面设计在什么网站能挣钱网络优化工作应该怎么做
  • h5做网站什么软件抖音关键词查询工具
  • 网站数据库问题seo网站优化工具
  • 医药公司网站建设方案seo免费软件
  • 自己的主机做服务器网站如何备案上海关键词排名优化怎样
  • 网站建设服务费百度快速排名用什
  • 专门做软陶的网站百度总部在哪里
  • 系统优化的约束条件关键词优化是怎么弄的
  • 企业管理系统项目简介怎么写好搜索引擎优化管理实验报告
  • 遵义新闻头条同仁seo排名优化培训