springboot的自定义配置

author author     2023-03-16     784

关键词:

参考技术A SpringBoot免除了项目中大部分的手动配置,对一些特定情况,我们可以通过修改全局配置文件以适应具体生产环境,可以说,几乎所有的配置都可以写在application.properties文件中,SpringBoot会自动加载全局配置文件,从而免除我们手动加载的烦恼。但是,如果我们自定配置文件,SpringBoot是无法识别这些配置文件的,此时就需要我们手动加载。接下来,将针对SpringBoot的自定义配置文件及其加载方式进行讲解。

对于这种加载自定义配置文件的需求,可以使用@PropertySource注解结合@Configuration注解配置类的方式来实现。@PropertySource注解用于指定自定义配置文件的具体位置和名称。同时,为了保证SpringBoot能够扫描该注解,还需要类添加@Configuartion注解将实体类作为自定义配置类。
当然,如果需要将自定义配置文件中的属性值注入到对应类的属性中,可以使用@ConfigurationProperties或者@Value注解进行属性值注入

打开SpringBoot项目的resources目录,在项目的类路径下新建一个test.properties自定义配置文件,在该配置文件中编写需要的配置属性

在com.david.pojo包下新创建一个配置类MyProperties,提供 test.properties 自定义配置文件中对应的属性,并根据@PropertySource注解的使用进行相关配置

主要是一个自定义配置类,通过相关注解引入了自定的配置文件,并完成了自定义属性值的注入。针对示例中的几个注解,具体说明如下:
1)@Confiruation注解表示当前类是一个自定义配置类,并添加为Spring容器的组件,这里也可以使用传统的@Component注解
2)@PropertySource("classpath:properties")注解指定了自定义配置文件的位置和名称,此示例表示自定义配置文件为classpath类路径下的 test.properties 文件
3)@ConfigurationProperties(prefix="test")注解将上述自定义配置文件 test.properties 中以test开头的属性值注入到该配置类属性中
4)如果配置类上使用的是@Componnet注解而非@Configuration注解,那么@EnableConfigurationProperties注解还可以省略

在SpringBoot框架中,推荐使用配置类的方式向容器中添加和配置组件
在SpringBoot框架中,通常使用@Configuration注解定义一个配置类,SpringBoot会自动扫描和识别配置类,从而替换传统Spring框架中的XML配置文件。
当定义一个配置类后,还需要在类中的方法上使用@Bean注解进行组件配置,将方法的返回对象注入到Spring容器中,并且组件名称默认使用的是方法名,当然也可以使用@Bean注解的name或value属性自定义组件的名称

在项目下新建一个

一文教你实现springboot中的自定义validator和错误信息国际化配置

一个在阿里云打工的清华学渣!本文通过示例说明,在Springboot中如何自定义Validator,以及如何实现国际化的错误信息返回。注意,本文代码千万别直接照抄,有可能会出大事情的。先留个悬念,读者朋友们能从中看出有什么问题... 查看详情

无法从 Spring Boot 应用程序中的自定义 yml 文件加载配置

】无法从SpringBoot应用程序中的自定义yml文件加载配置【英文标题】:Cannotloadconfigfromcustomymlfileinspringbootapplication【发布时间】:2017-11-1608:30:55【问题描述】:我正在从我的SpringBoot服务中的application.yml加载自定义配置。我已经通... 查看详情

面试题:springboot的自启动原理

引言不论在工作中,亦或是求职面试,SpringBoot已经成为我们必知必会的技能项。除了比较老旧的政府项目或金融项目依旧使用如SSM或SSH做单体框架开发项目外,如今的各行各业基于项目的快速开发与发布、迭代更新,都在逐渐... 查看详情

SpringBoot 使用 ControllerAdvice 中的自定义错误处理所有错误

】SpringBoot使用ControllerAdvice中的自定义错误处理所有错误【英文标题】:SpringBoothandleallerrorswithcustomerrorinControllerAdvice【发布时间】:2020-10-2712:13:07【问题描述】:我有一个RESTapispringboot应用程序,想处理ControllerAdvice中的任何错误... 查看详情

springboot 微服务中的自定义 JWT 令牌

】springboot微服务中的自定义JWT令牌【英文标题】:CustomJWTtokeninspringbootmicroservices【发布时间】:2022-01-1100:57:23【问题描述】:我们有一个应用程序在成功验证后从外部系统加载信息(特定于用户),为了避免每次api调用到外部... 查看详情

SpringBoot jars 作为 JBoss EAP 7.0 中的自定义模块

】SpringBootjars作为JBossEAP7.0中的自定义模块【英文标题】:SpringBootjarsasacustommoduleinJBossEAP7.0【发布时间】:2021-02-1820:59:56【问题描述】:我想为SpringBootjar创建一个JBossEAP自定义模块,并在JBoss中的不同战争部署中使用这个自定义模... 查看详情

Spring Boot 中的自定义异常

】SpringBoot中的自定义异常【英文标题】:CustomExceptioninSprinBoot【发布时间】:2019-12-1209:54:06【问题描述】:我在SPRINGBOOT中编写了以下自定义错误处理程序@RestControllerAdvicepublicclassCustomGlobalExceptionHandlerextendsResponseEntityExceptionHandler@... 查看详情

Springboot jpa:实体无法绑定不在表列中的自定义查询中的数据

】Springbootjpa:实体无法绑定不在表列中的自定义查询中的数据【英文标题】:Springbootjpa:Entitycan\'tbinddatafromcustomquerythat\'snotintablecolumn【发布时间】:2021-12-1310:51:22【问题描述】:我使用javaSpringbootJPA,mysql。我需要从我的自定义... 查看详情

Spring boot - Application.properties 中的自定义变量

】Springboot-Application.properties中的自定义变量【英文标题】:Springboot-customvariablesinApplication.properties【发布时间】:2015-11-1014:05:59【问题描述】:我有一个使用restfulapi的springboot客户端。我可以使用application.properties中的任何密钥条... 查看详情

springboot验证表单数据并实现数据的自定义验证

参考技术A这里主要用的是hibernate.validator这个内置校验器,这个校验器看了下,能满足大多需求,新需求就自己开发->@MyConstraint这个验证的简单开发实例2.自定义验证业务逻辑的实现类:实现ConstraintValidator这个接口,重写isValid... 查看详情

springboot-自动生成接口文档

...有许多成熟的第三方库可以自动为项目生成接口文档,在SpringBoot中,最常使用的接口文档自动生成库就是Swagger。本篇博文主要介绍在SpringBoot中集成Swagger3的方法。更多详细信息,请参考官网:Specification简单来说,OpenAPI就是定... 查看详情

Spring Boot - 实体中的自定义类字段

】SpringBoot-实体中的自定义类字段【英文标题】:SpringBoot-customclassfieldinentity【发布时间】:2017-11-2620:15:20【问题描述】:我有2个自定义类,OzBakim和GunlukEtkinlik。这些类不是实体。我需要在实体中使用这些类。但我得到一个错误... 查看详情

如何在 Spring Boot 中发送 400、401、405、403 和 500 错误的自定义响应?

】如何在SpringBoot中发送400、401、405、403和500错误的自定义响应?【英文标题】:Howtosendcustomresponsefor400,401,405,403and500errorsinspringboot?【发布时间】:2020-10-2009:25:21【问题描述】:我想在SpringBoot中针对400、401、405、403和500错误发送... 查看详情

springboot的自定义注解功能实现类该怎么写?

我想做一个类属性上的注解,加了后会修改这个类里的方法,实现这个注解功能的类该怎么写?或者该继承什么接口?这个应该和lombok包的@Getter和@Setter的功能实现类一样的把,我在网上收到过用AOP切面实现的但是这是在方法上... 查看详情

codeigniter 的自定义配置文件

】codeigniter的自定义配置文件【英文标题】:Customconfigfileforcodeigniter【发布时间】:2014-01-1515:32:32【问题描述】:对CodeIgniter非常陌生,正在尝试创建自定义配置文件以将特殊变量加载到我的应用程序中。在application/config/中,我... 查看详情

Rails - 环境配置文件中的自定义配置?

】Rails-环境配置文件中的自定义配置?【英文标题】:Rails-Customconfiginenvironmentconfigfiles?【发布时间】:2011-03-1618:14:42【问题描述】:是否可以在config/environments/*.rb或config/environment.rb文件中定义自定义配置。是的,我如何从我的... 查看详情

springboot中普通工具类不能使用@value注入yml文件中的自定义参数的问题

在写一个工具类的时候,因为要用到yml中的自定义参数,使用@Value发现值不能正常注入,都显示为null;yml文件中的自定义格式调用工具类的时候不能new的方式要使用@Autowired的方式注入进来,new会导致部分环境未加载,尽可能舍弃... 查看详情

属性的自定义配置绑定器

】属性的自定义配置绑定器【英文标题】:CustomConfigurationBinderforProperty【发布时间】:2017-06-1919:31:29【问题描述】:我在ASP.NETCore1.1解决方案中使用配置绑定。基本上,我的ConfigureServices启动部分中有一些简单的绑定代码,如下... 查看详情