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

springboot获取配置文件中的值

概括

在开发过程中,对于一些通用的配置,通常会定在一个配置文件中。通常为application.properties或者application.yml文件中。我们只需要在需要使用的地方通过注解直接获取即可。

使用

在springboot中可以通过使用@value注解来读取配置文件中的属性。注解的引用一定要是springframework提供的注解,不要引入错误。例如下面的代码

import org.springframework.beans.factory.annotation.Value;
	@Value("$server.port:")
	private  String port;

即可获取到配置文件中定义的server.port设置属性值了。方便我们开发中使用。

优化

因为有些时候可能需要很多属性值,每次都需要引入过于麻烦,所以可以通过定义个类来专门存放这些属性,再设置get方法来获取值。

这样就可以在只引入一次就可以获取到各个配置的信息。注意在设置类的时候,只提供get方法,不要提供set方法。这样可以保证数据的安全性。参考代码如下所示。

package com.easyjob.entity.appconfig;
import org.springframework.beans.factory.annotation.Value;

public class Appconfig {
    @Value("server.port")
    private String port;

    @Value("project.folder")
    private String folder;

    @Value("spring.datasource.username")
    private String username;

    @Value("spring.datasource.password")
    private String password;

    public String getPort() {
        return port;
    }

    public String getFolder() {
        return folder;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }
}

在需要使用的地方直接引入即可,如下所示:


    @Resource
    private Appconfig appconfig;
 public PaginationResultVO<Account> findListByPage(AccountQuery query) {
        String folder = appconfig.getFolder();
        Integer count = this.findCountByParam(query);
        Integer pageSize = query.getPageSize() == null ? PageSize.SIZE15.getSize() : query.getPageSize();
        SimplePage page = new SimplePage(query.getPageNo(), count, pageSize);
        query.setSimplePage(page);
        List<Account> list = this.findListByParam(query);
        PaginationResultVO result = new PaginationResultVO(count, page.getPageSize(), page.getPageNo(), page.getPageTotal(), list);
        return result;
    }

http://www.kler.cn/a/410186.html

相关文章:

  • 商业物联网:拥抱生产力的未来
  • 51单片机-独立按键与数码管联动
  • Python 网络爬虫操作指南
  • 力扣--LCR 154.复杂链表的复制
  • 【Web前端】如何构建简单HTML表单?
  • 基于STM32的智能家居电器控制系统
  • java基础知识(常用类)
  • ctfshow单身杯2024wp
  • 大数据和云计算在 WMS 中的应用
  • 力扣—53. 最大子数组和
  • 【FPGA】Verilog:利用 4 个串行输入- 串行输出的 D 触发器实现 Shift_register
  • 基于Opencv的图像处理软件
  • 电路模型和电路定理(二)
  • 嵌入式驱动开发详解3(pinctrl和gpio子系统)
  • 如何在ubuntu上调试core dump
  • 小程序-基于java+SpringBoot+Vue的铁路订票平台小程序设计与实现
  • 网络安全,文明上网(6)网安相关法律
  • [OpenHarmony5.0][Docker][教程]OpenHarmony5.0编译环境基于WSL2封装Docker镜像教程
  • Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程
  • 基于CNN-LSTM的时序预测MATLAB实战
  • 【C++篇】深度解析 C++ List 容器:底层设计与实现揭秘
  • 类和对象plus版
  • 量化交易系统开发-实时行情自动化交易-4.4.做市策略
  • 蓝桥杯每日真题 - 第22天
  • Wireshark抓取HTTPS流量技巧
  • 量子生成对抗网络