springboot_读取自定义配置的两种方式

2023-11-16

一、核心配置文件

核心配置文件是指在resources根目录下的application.properties或application.yml配置文件。

我们写自定义配置也一般写在这个文件里,但实际上我们为了方便区分和管理,我们可以自己新建一个properties文件,需要注意的是,如果你application.properties或application.yml里也写上了相同的配置,springboot会优先读取application.properties或application.yml里的配置。

二、读取自定义配置文件

这里我在resource目录下新建了一个school.properties

school.name=加里敦大学
school.address=阿拉斯加
school.age=100

读取方式一:在相应变量上加@value注解

package com.rong.controller;

import com.rong.config.ConfigInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigInfoController {

    /**
     * 读取自定义配置的方式一
     */

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

    @Value("${school.address}")
    private String address;

    @Value("${school.age}")
    private int age;

    @GetMapping("/inits")
    private String initConfigInfo1(){
        return name + " " + address + " " + age;
    }
}

这里访问localhost:8080/inits就会得到加里敦大学  阿拉斯加  100了

读取方式二:

需要先写个配置类

package com.rong.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * 作为配置类
 */
@Component//会将该类的对象加入到容器中
@PropertySource(value = "classpath:myschool.properties")//指定外部配置文件的名字
@ConfigurationProperties(prefix = "school")//表示会从配置文件中读取以school开头的内容
public class ConfigInfo {

    private String name;

    private String address;

    private int age;

    public String getName() {
        return name;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

之后再controller里使用@Autowired自动注入

package com.rong.controller;

import com.rong.config.ConfigInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigInfoController {

    /**
     * 读取自定义配置的方式二
     */
    @Autowired
    private ConfigInfo configInfo;

    @GetMapping("/init")
    public String initConfigInfo2() {
        return configInfo.getName();
    }
}

这里我只返回的是name,即访问localhost:8080/init就可以得到  ”加里敦大学“了

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot_读取自定义配置的两种方式 的相关文章

随机推荐

  • netcore 判断是否ajax,ASP.NET Core 判断请求是否为Ajax请求

    原文 ASP NET Core 判断请求是否为Ajax请求 我们可以通过HTTP请求头来判断是否为Ajax请求 Ajax请求的request headers里都会有一个key为x requested with 值为XMLHttpReques
  • SQL实战(4)——2021年11月每天新用户的次日留存率

    现有表 用户行为日志表tb user log 问题 统计2021年11月每天新用户的次日留存率 保留2位小数 注 次日留存率为当天新增的用户数中第二天又活跃了的用户数占比 如果in time 进入时间和out time 离开时间跨天了 在两
  • git系列之-如何把项目发布到github

    111111111111111111111111111111111111111111111111111111
  • 华为AR系列路由器密码重置

    1 设备重加电启动 按Ctrl B进入bootrom菜单 密码是huawei 2 修改启动配置文件名称 Main Menu 1 Default Startup 2 Serial Menu 3 Network Menu 4 Startup S
  • Ubuntu16.04安装JDK1.8详细步骤

    检测是否安装JDK root instance cqxyyrb2 java The program java can be found in the following packages default jre gcj 5 jre head
  • WebView加载h5页面弹窗无法显示问题和申请摄像头权限问题做个记录

    参考文章 WebView 加载H5页面空白问题 WebView使用getUserMedia 首先需要设置webview支持js 在Android 9 0后 访问地址如果是http开头的 还需要在配置文件里设置允许http访问 android
  • mybatis入门到熟练(一)

    一 创建一个空的maven项目 使用idea创建一个空的maven项目 引入依赖
  • 0x0000000000指令引用的0x00000000内存。该内存不能为read

    1 不知道是某个软件导致 进入CMD命令提示符 输入for 1 in windir system32 ocx do regsvr32 s 1再输入 for 1 in windir system32 dll do regsvr32 s 1 2
  • 华为OD机试真题 Java 实现【文件目录大小】【2023 B卷 100分】,附详细解题思路

    目录 专栏导读 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 3 说明 4 再输入 5 再输出 6 说明 华为OD机试 2023B卷题库疯狂收录中 刷题点这里 专栏导读 本专
  • python竖线_python对齐竖线

    广告关闭 腾讯云11 11云上盛惠 精选热门产品助力上云 云服务器首年88元起 买的越多返的越多 最高返5000元 大多数编辑器都会自动对齐后续参数列表行 使其缩进程度与你给第一个参数列表行指定的缩进程度相同 def function na
  • Java web 学习笔记

    Java Web 1 web基础 1 1 基本概念 web开发 网页开发 分为 静态web 和 动态web 静态web 由 html css JavaScript 共同组成 提供给所有人看 数据永远不变 动态web 提供给所有人看的数组 在
  • Spring Security Oauth2系列(一)

    前言 关于oauth2 其实是一个规范 本文重点讲解spring对他进行的实现 如果你还不清楚授权服务器 资源服务器 认证授权等基础概念 可以移步理解OAuth 2 0 阮一峰 这是一篇对于oauth2很好的科普文章 需要对spring s
  • MySQL之常见的CRUD面试题【上】

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于MySQL数据库的相关操作吧 目录 Welcome Huihui s Code World 导读 一 数据库的连表查询是什么 二 连表查询有几种常见类型 1
  • 架构-大数据架构-阿里

    大数据架构 大数据框架从0到1整个过程的实现 根据本博客内容 可以实现整个大数据基本搭建 只是大概步骤 供学习参考 本博客从下面5个方面介绍 技术框架 技术选型 系统架构设计 业务流程 生态实现步骤 以阿里为例的大数据架构 通过学习视频 然
  • html里面行高的原理,CSS行高(line-height)及文本垂直居中原理

    在CS多现业讲进行效通近年有务这行定果过近年有S中 line height 属性设置两段段文本之间的距离 也就是行高 如果我们把一段文本的line height设置为父容器的高度就可以实现文本垂直居中了 比如二 都过发宗发数前业很断屏击和公
  • 基于AAEncode编码的解密经历

    有天 正在干活 领导突然发了一个静态页面 说通过办公网流量获取的一个url 可以查询公司所有员工的靓照 截图如下 这极大的引发了我们安全部门的高度重视 立马对页面进行了分析
  • 关于RDF的技术支持和应用部分示例

    1 RDF的应用 Mozilla XUL XML User Interface http www mozilla org rdf doc faq html xul templates IBM ORIENT by IBM CRL http w
  • Linux读写GPIO的几种方法及一些有趣的应用

    Linux读写GPIO的几种方法及一些有趣的应用 Yihui 在智能音箱的设计中 最近在写LED的控制 触摸按键的检测 这不就是在Linux下读写GPIO 太简单吧 很多人就不屑一顾了 不过 简单读写IO也可以玩出花来 得到意外的惊喜 这里
  • 江苏省对口单招计算机原理,江苏省对口单招计算机原理教案

    第三章CPU 指令系统 总线系统 一 填空题 1 指令由 和 两部分组成 2 指令中的 指明完成操作所需要的操作数的地址 3 根据地址码部分所给出的地址的个数可将指令分为 二地址指令 三地址指令等 4 指令的寻址方式与操作数可存放的位置及存
  • springboot_读取自定义配置的两种方式

    一 核心配置文件 核心配置文件是指在resources根目录下的application properties或application yml配置文件 我们写自定义配置也一般写在这个文件里 但实际上我们为了方便区分和管理 我们可以自己新建一个