SpringBoot(五):自定义属性获取

SpringBoot获取YAML配置文件中的属性值(一):使用@Value注解、@ConfigurationProperties注解 SpringBoot支持使用Properties和YAML两种配置方式。两者功能类似,都能完成SpringBoot的配置,但是Properties的优先级要高于YAML(YAML语言的文件以“.yml”为后缀)。 使用application.yml文件配置SpringBoot项目。主要对SpringBoot项目的端口号、超时时间、参数值等进行配置。YAML文件的好处是——它采用的是树形结构,一目了然。如下: 阅读详情

Spring Boot系列
SpringBoot(一):Quick start
SpringBoot(二):多环境切换
SpringBoot(三):Respond封装
SpringBoot(四):统一异常处理

目录

一.全局配置文件配置属性
二.获取单一属性
三.映射Bean属性
四.测试

一.全局配置文件配置属性

在src/main/resources目录下,找到一个名为application-dev.properties的全局配置文件,可对一些默认配置的配置值进行修改。
ps:本次目录结构
这里写图片描述
配置信息如下

自定义属性值

server.port=8080

#测试属性值
yjgithub.name=cyj
yjgithub.email=yigithub@163.com
yjgithub.sex=man
二.获取单一属性

创建以下文件

/com/citydata/config/YjgithubConfig.java


ps:
1.需要加@Component注解
2.@Value("${yjgithub.name}") 获取到你所需要的对应值

package com.citydata.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @Author yjgithub
 * @Date 2018/5/29
 * @Description  测试配置文件信息
 */
@Component
public class YjgithubConfig {

    // name
    public static String name;
    @Value("${yjgithub.name}")
    public void setName(String $name) {
        this.name = $name;
    }
}
三.映射Bean属性

3.1添加依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

3.2 定义一个bean(YjgithubBean) 匹配你所对应的属性值

在以下路径创建该bean

/com/citydata/bean/YjgithubConfig.java


ps:
1.需要加@ConfigurationProperties(prefix="yjgithub") 注解匹配上配置文件中的属性值

package com.citydata.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Created by yjgithub on 2018/5/29.
 * name
 * email
 * sex
 */
@ConfigurationProperties(prefix="yjgithub")
public class YjgithubBean {
    private String name;
    private String email;
    private String sex;

    @Override
    public String toString() {
        return "yjgithub{" +
                "name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }

    public YjgithubBean(String name, String email, String sex) {
        this.name = name;
        this.email = email;
        this.sex = sex;
    }

    public YjgithubBean() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

3.3在启动类(CitydataApplication)中加入该bean

ps:
@EnableConfigurationProperties({YjgithubBean.class})

package com.citydata;

import com.citydata.bean.YjgithubBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

@EnableConfigurationProperties({YjgithubBean.class})
@SpringBootApplication
public class CitydataApplication {

    public static void main(String[] args) {
        SpringApplication.run(CitydataApplication.class, args);
    }
}
四.测试

4.1 编写测试类(service,impl,TestController)

service

package com.citydata.service;

import com.citydata.response.ReturnData;

/**
 *
 * Created by yjgithub on 2018/5/28.
 */
public interface TestService {
    public ReturnData test(String str);
    public ReturnData exception();
    public ReturnData getSingleValue();
    public ReturnData getBeanValue();
}

impl

package com.citydata.service.impl;

import com.citydata.bean.YjgithubBean;
import com.citydata.config.YjgithubConfig;
import com.citydata.constant.ResponseCode;
import com.citydata.response.ReturnData;
import com.citydata.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by yjgithub on 2018/5/28.
 */
@Service
public class TestImpl implements TestService {
    @Override
    public ReturnData test(String str) {
        ReturnData rd = new ReturnData(ResponseCode.OPERATION_SUCCESS.getStatus(),ResponseCode.OPERATION_SUCCESS.getMsg(),str);
        return rd;
    }

    @Override
    public ReturnData exception() {
        int[] arr = {1,2,3};
        System.out.println(arr[4]);
        ReturnData rd = new ReturnData(ResponseCode.OPERATION_SUCCESS.getStatus(),ResponseCode.OPERATION_SUCCESS.getMsg());
        return rd;
    }

    @Override
    public ReturnData getSingleValue() {
        String name = YjgithubConfig.name;
        ReturnData rd = new ReturnData(ResponseCode.OPERATION_SUCCESS.getStatus(),ResponseCode.OPERATION_SUCCESS.getMsg(),"获取单一属性name:"+name);
        return rd;
    }


    @Autowired
    private YjgithubBean yjgithubBean;
    @Override
    public ReturnData getBeanValue() {
        String allInfo = yjgithubBean.toString();
        ReturnData rd = new ReturnData(ResponseCode.OPERATION_SUCCESS.getStatus(),ResponseCode.OPERATION_SUCCESS.getMsg(),"获取全部属性:"+allInfo);
        return rd;
    }
}

TestController

package com.citydata.controller;

import com.citydata.response.ReturnData;
import com.citydata.service.impl.TestImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by yjgithub on 2018/5/28.
 */
@RestController
@RequestMapping("test")
public class TestController {
    @Autowired
    TestImpl testService;

    @RequestMapping("/index")
    public ReturnData index(String Str) {
        return testService.test(Str);
    }

    @RequestMapping("/exception")
    public ReturnData exception() {
        return testService.exception();
    }

    @RequestMapping("/singleValue")
    public ReturnData singleValue() {
        return testService.getSingleValue();
    }

    @RequestMapping("/beanValue")
    public ReturnData beanValue() {
        return testService.getBeanValue();
    }
}

4.2 访问数据
单一数据:
这里写图片描述

全部数据:
这里写图片描述

到此测试成功!

PS:需要项目源代码,请邮件yjgithub@163.com联系

【Spring Boot】Spring Boot的系统配置 — 自定义配置项 在上面的示例中,创建了自定义的website.properties配置文件。增加了name、website、language等三个配置项,这些配置项的名称的前缀都是com.lxmb.resource。 阅读详情

相关推荐

UDS 诊断 - CommunicationControl(通信控制)(0x28)服务 诊断

字节参数名称字节值#1CommunicationControl(通信控制)请求SID0x28#2#3communicationType(通信类型)#4nodeIdentificationNumer(节点标识符)(高位字节)controlType 为 0x04 或 0x05 时,使用该参数#5nodeIdentificationNumer(节点标识符)(低位字节)controlType 为 0x04 或 0x05 时,使用该参数。

耳朵东金子千的博客 1820

Spring Boot下自定义配置属性的读取

一.应用场景     使用Spring Boot开发,经常需要自定义配置属性,例如系统全局属性,或者外部调用的常量属性等,那么这些配置属性应该放在哪里比较合适?怎么读取并在代码中使用呢? 二. 属性配置     在Spring Boot中,有两种常用的配置文件格式:properties和yml。下面总结了几种常见的属性...

G0_hw 949

SPSS因子分析实战:从数据清洗到结果解读的完整流程

本文提供了一份详尽的SPSS因子分析实战指南,涵盖从数据清洗、适用性检验(KMO与巴特利特检验)、公因子提取、因子旋转到结果解读与报告撰写的完整流程。通过具体案例,手把手教你如何利用SPSS进行探索性因子分析,实现数据降维并提炼核心公共因子,适用于市场研究、心理学等多变量数据分析场景。

weixin_29055699的博客 329

Spring Boot 自定义属性配置

Spring Boot自定义配置 - Spring Boot In Action1. 覆盖Spring Boot自动配置2. 通过属性文件外置配置 1. 覆盖Spring Boot自动配置 想要覆盖Spring Boot的自动配置,你所要做的仅仅是编写一个显式的配置。SpringBoot会发现你的配置,随后降低自动配置的优先级,以你的配置为准。 Spring Boot的设计是加载应用级配置,...

ttyy1112的专栏 951

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

(南京观海微电子)——GH700X调试指南--SPI 接口+LVDS-测试盒使用方法

1表示OTP完成后,读取烧录值是否一致来判断是否烧录成功,2表示同时检测VCOM是否一致以及烧录次数是否增加,3表示不做任何检测,由用于自行在程序中判断。[格式]:SetFindVcomEn (<开启或关闭>),ON表示开启VCOM搜寻,默认是开启的,只要使能OTP烧录,按OTP按键则进行VCOM查询;[功能]:OTP完成检测类别,用于设置OTP完成后检测OTP次数还是OTP值来判断OTP是否成功。[功能]:用于设置VCOM查询使能,比如需要烧全代码而不需要对VCOM查询时,可以禁止VCOM查询。

m0_75095200的博客 1666

SpringBoot:SpringBoot强大的自定义属性配置

@Value和@ConfigurationProperties在自定义属性的使用。

永远保持随时离开的技术能力! 2709

ICC2 user guide(二)Placement and Optimization

ICC2 place阶段user guide

m0_61544122的博客 9226

Spring Boot (六)——详解配置文件 application.properties

详解配置文件 application.properties 在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml 。 虽然 properties 文件比较常见,但是相对于 properties 而言,yaml 更加简洁明了,而且使用的场景也更多,很多开源项目都是使用 yaml 进行配置(例如 Hexo)。除了简洁,yaml 还有另外一个特点,...

云中、漫步的博客 1569

【高级】系统架构师 | 2026年上半年案例分析真题

标准答案:系统因缺乏足够历史数据(用户行为、物品信息或评分等),难以做出准确推荐的问题。另外两种:物品冷启动(新课程 / 新知识点缺少互动数据)系统冷启动(平台上线初期整体数据稀缺)类型典型表现常见缓解用户冷启动新注册学员无历史问卷/前测、热门兜底、人口统计学特征、知识图谱前置测评物品冷启动新课无人学无人评内容特征推荐、专家标注、探索流量系统冷启动新平台双边都稀缺规则引擎、运营冷启、知识图谱强约束路径本题已点明「用户冷启动」,另外两种按推荐系统经典三分法作答即可。

大胆尝试,小心实践 358

Plecs standalone 4.9.5最新版本,赶紧来下载使用吧,需要做并网逆变器及光伏储能变换器的朋友赶紧下载起来

PLECS 4.9.5较4.7.1版实现全面升级:采用自适应求解器切换技术,支持多核CPU/GPU加速,仿真速度提升30-50%;新增模型引用功能,实现模块化设计;强化光伏/风电等新能源组件,支持多物理场耦合分析;优化代码生成功能,兼容多种硬件平台和FMU导入。新版特别适用于复杂电力电子系统、多域联合仿真及硬件在环测试项目,但对硬件配置要求更高。基础教学项目仍可使用4.7.1版本。建议用户根据项目复杂度选择升级方案。

2437

SpringBoot获取自定义注解属性-类-方法

SpringBoot获取自定义注解属性-类-方法 写了个自定义注解,想获取自定义注解的属性,或者标在方法上的注解上的属性 获取自定义注解在类上的属性值 //获取自定义注解的配置的所有bean final Map<String, Object> beansWithAnnotation = applicationContext.getBeansWithAnnotation(...

昆仔的博客 1万+

让 VK31 的条件维护树长出你想要的分支:用 ABAP SE43 扩展定价 Area Menu COND_AV

摘要:本文深入解析了SAP系统中价格条件维护(VK31/VK32)的菜单结构优化方法。通过分析Area Menu(COND_AV)的三层架构(菜单对象、节点、报表),提出将业务语言融入菜单设计的解决方案。重点介绍了使用SE43事务码扩展标准菜单的具体步骤:创建Enhancement ID、新增业务节点、挂接定价报表,并强调需同步验证条件表映射关系。文章还提供了常见问题排查思路,建议从岗位视角重构菜单结构,最终实现高效、精准且符合业务语义的价格维护入口体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 89

SpringBoot从配置文件中获取属性的四种方法

SpringBoot从配置文件中获取属性 方式一: @Value 基本类型属性注入,直接在字段上添加@Value("${xxx.xxx}")即可.注意这里用的是$,而不是#.@Value注入的属性,一般其他属性没有关联关系. 配置文件 user: name: Manaphy age: 19 sex: male @RestController public class ConfigPr...

Manaphy Chen的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringBoot自定义配置属性

本文介绍了如何自定义配置属性,如何配置 Idea 在使用Kotlin的情况下能够识别配置的属性,以及属性参数是列表,属性继承的处理方法。

PeterGamp的博客 2085

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

springboot 使用yml配置文件自定义属性

springboot 中在application.yml文件里自定义属性值,配合@Value注解可以在代码中直接取到相应的值,如在application.yml中添加 mqtt: serverURI: tcp://192.168.125.250:1939 topic:  在代码中可以用 @Value("${mqtt.topic}") private String topic ;

yuanwanchao的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringBoot(入门案例、日志、自定义获取属性、thymeleaf)

文章目录Spring Boot概述Spring Boot是个啥为啥用SpringBoot入门案例核心步骤(这里采用子模块的方式建立工程)具体实现SpringBoot的日志管理核心步骤(简单使用 & 自定义方式)具体实现自定义属性的获取 Spring Boot概述 Spring Boot是个啥 与其说Spring Boot是一个框架,不如说它是一个工具,Spring Boot不仅继承了Spring框架原有的优秀特性,还简化了配置来方便用户完成Spring应用的整个搭建和开发过程。 其次Spring B

Dean_xiu的博客 605

SpringBoot初识(三)——自定义属性

    上一篇我们已经创建了一个最简单的SpringBoot项目,从这一篇开始讲一些我个人在实际项目中运用到的,感觉比较有用的东西。由于是个人的总结,所以个人标书可能没有那么进准,也必然没有官方那么详尽,请大家以SpringBoot官方详尽内容最为最终基准。     在进行这一篇之前,安利一个软件postman,在开发一些借口请求时候,确实比较好用。官网:https://www.getpostm...

吾码小栈 359

SpringBoot启动流程分析之设置系统属性spring.beaninfo.ignore、自定义banner图(五)

参考目录在resources目录下新建一个banner.txt文件或者你也可以直接放一张图片到resources目录下,名字是banner.jpg(gif|png)。我的banner.txt内容如下。可以到这个网站去生成banner图:生成banner图。

lvyuanj的专栏 1377

SpringBoot工具类--属性获取工具类

文章目录前言正文1. SpringPropertyResourceReader2. 配置属性(示例)3. 使用属性常量(示例) 前言 SpringBoot项目中,bean可以通过@value注入方式获取属性配置.但是有时候我们希望用常量来获取属性,保证项目任意位置都能通过常量对象获取属性。 正文 1. SpringPropertyResourceReader 定义工具类SpringProperty...

Myron_007的博客 1889

SpringBoot 自定义属性源EnvironmentPostProcessor和PropertySourceLoader

SpringBoot 版本2.1.4.RELEASE 由于SpringCloud 配置中心自定义存储方式中提到PropertySourceLoader,故再学习一下自定义属性源 自定义属性源有两种比较简单的方式: 1、实现EnvironmentPostProcessor接口 2、实现PropertySourceLoader接口 然后在META-INF/spring.factories添加相应配...

qq_25863973的博客 2233

springboot项目获取自定义属性值

在配置文件中添加自己定义的属性 #自定义属性 img.url.prefix=12.34.567.891:2222 #接口 yujingUrl=http://123.456.789.123:1234/test/add 对应的bean package com.ldxx.vo; import org.springframework.beans.factory.annotation.Value...

振峰的博客 521

SpringBoot获取配置文件属性值

SpirngBoot学习记录-1.0-获取配置文件属性的方式SpringBoot学习记录1:通过原始Spring的方式获取通过配置Spirng配置类使用@AutoWride注入Environment获取属性值通过@Value("${key}")实现获取属性值结尾 SpringBoot学习记录 最近重新开始梳理一下SpringBoot的一些记录,有什么问题大家可以提出问题共同参考一下。 1:通过原始...

Memory_loss的博客 1017

springboot中获取配置文件中属性值的几种方式

Configurationproperties(prefix=”xxx”)prefix的作用是区分同名配置,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置文件。在核心配置文件applicatin.properties中激活生产环境,这里的product对应文件名application-produc的横杠后面的produc。当指定prefix之后,就不需要再在属性上面搭配@value注解使用,因为当指定前缀school之后,属性就会自动注入。prefix怎么使用呢?

baomingshu的博客 5410

springboot shrio自定义cookie属性

springboot shrio自定义cookie属性 /** * 配置保存sessionId的cookie * 注意:这里的cookie 不是上面的记住我 cookie * 记住我需要一个cookie session管理 也需要自己的cookie * @return */ @Bean("sessionIdCookie") pu...

u014752221的博客 3471

springboot注册自定义bean+属性注入

springboot注入bean有两种方式: 1.使用@Component标签 该标签是注解在类上,例如: @Component public class CustomSimpleBean(){ private String property1; public String getProperty1() { return property1; } public vo...

wh09091的博客 4348
上一篇: SpringBoot(六):统一异常入库处理
下一篇: 脚本调试sh -x xx.sh、set -x
yjgithub
博客等级 码龄11年 53粉丝 105原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值