首页 > 其他分享 >几条固定数据需要建表?

几条固定数据需要建表?

时间:2023-05-13 15:01:31浏览次数:37  
标签:几条 建表 String 配置文件 configFilePath key 配置 固定 props

在开发中,可能会遇到这样的业务场景:已知有几条固定的数据,需要实现【展示&修改】功能。
建表? 杀鸡用牛刀
缓存? 服务器重启,数据就失效了


从领域角度而言,这种数据可以视为配置(config),使用者可以选择自己想要的某种配置,同时又可以对这些配置做出一定调整(修改)。
谈到配置,不难想出用配置文件的方式来管理这些数据,以下代码为具体实现。

xxxx\conf\config.properties
代码会自动在这个路径创建一个名为config.properties的文件,其中就可以存储你想要的各种配置,每个配置设定相应的key,根据getValue()方法读取key对应的value,setValue()方法修改key对应的value


/**
 * 配置文件助手
 * 专注于处理配置文件的业务
 */
@Component
public class ConfigHelper {

    private final Properties props = new Properties();

    /**
     * 配置文件名
     */
    public static final String CONFIG_FILENAME = "config.properties";

    /**
     * 门禁配置的key
     */
    public static final String ENTRANCE_KEY = "entrance.guard";

    /**
     * 配置文件路径
     */
    private Path configFilePath;

    @Value("${服务器可编辑权限文件夹根路径}")
    private String root;

    /**
     * 读取配置项的值
     *
     * @param key 配置项的键
     * @return 配置项的值
     */
    public String getValue(String key) throws IOException {
        loadProperties();
        return props.getProperty(key);
    }

    /**
     * 修改配置项的值
     *
     * @param key   配置项的键
     * @param value 配置项的值
     */
    public void setValue(String key, String value) throws IOException {
        loadProperties();
        props.setProperty(key, value);
        saveProperties();
    }

    /**
     * 加载配置文件
     */
    private void loadProperties() throws IOException {
        configFilePath = Paths.get(root, "conf", CONFIG_FILENAME);
        if (!Files.exists(configFilePath)) {
            createConfigFile();
        }
        try (InputStream inputStream = Files.newInputStream(configFilePath)) {
            props.load(inputStream);
        }
    }

    /**
     * 保存配置文件
     */
    private void saveProperties() throws IOException {
        try (OutputStream outputStream = Files.newOutputStream(configFilePath)) {
            props.store(outputStream, null);
        }
    }

    /**
     * 创建新的配置文件
     */
    private void createConfigFile() throws IOException {
        Path dirPath = Paths.get(root, "conf");
        Files.createDirectories(dirPath);
        configFilePath = dirPath.resolve(CONFIG_FILENAME);
        try (OutputStream outputStream = Files.newOutputStream(configFilePath)) {
            props.store(outputStream, null);
        }
    }
}

标签:几条,建表,String,配置文件,configFilePath,key,配置,固定,props
From: https://www.cnblogs.com/ashet/p/17397408.html

相关文章

  • ant-design-vue中,如何将固定头部(layout-header)中的menu-item元素移动到右边
    官方的文档显示的都是左边,提供的API也没有移动到右边的功能 在ant-design-vue的群里面问了,然后又去各种问。有人建议可以用row和col来解决,也是可以,但是为了保持格式完整性,最好是在menu中去修改,不然,按键和其他按键不一样,很麻烦。去ant-design(ant-design-vue算是ant-design的分......
  • 实现导航栏固定,滚动条下滑一定距离后消失,上划继续出现
    实现导航栏固定,滚动条下滑一定距离后消失,上划继续出现constshowHeader=ref(true);//获取滚动条的高度constgetScrollTop=()=>{letscrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;returnscr......
  • 固定定位
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatib......
  • LeetCode 周赛 344(2023/05/07)手写递归函数的固定套路
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。今天下午有力扣杯战队赛,不知道官方是不是故意调低早上周赛难度给选手们练练手。往期周赛回顾:LeetCode单周赛第343场·结合「下一个排列」的贪心构造问题周赛概览T1.找出不......
  • 如何将应用图标固定在Ubuntu的快捷启动栏上
    一、将已有应用的图标固定在快捷启动栏上,步骤如下:1.在/usr/share/applications文件夹中找到相应的应用图标。2.单击应用程序图标并将其拖动到快捷启动栏上。3.释放鼠标按钮,应用程序图标将固定在快捷启动栏上。二、自定义快捷方式固定在快捷启动栏上,步骤如下:......
  • ubuntu虚拟机设置nat模式,并固定IP
    vmware->编辑->虚拟网络编辑器DHCP设置虚拟机设置ubuntu启动,设置静态IP和DNS。这样才能通过PC机,访问外网。......
  • 如何搭建表白墙网站(LoveWall),Linux搭建网站教程
    用宝塔面板和开源表白墙程序LoveWall搭建一个表白墙网站。LoveWall是一个基于Thinkphp开发的表白墙。特色功能点赞发评论发弹幕多校区分享页涉证、涉H、暴力、违禁物等名词进行检测waitUpdate。下面是搭建教程:一、注册域名域名就是你的网站的网址,比如:blog.zeruns.tech就是我......
  • 创建Windows锁定桌面快捷方式并固定到任务栏
    1.创建快速锁定计算机的快捷方式1.首先,右击桌面,选择新建,选择快捷方式,新建一个快捷方式2.在出现的对话框中键入如下值%windir%/system32/rundll32.exeuser32.dll,LockWorkStation3.(注区分大小写))然后为快捷方式启个名称即可4.右键点击创建好的桌面快捷方式选择固定到任......
  • 权限模型与建表及SQL语句编写
    权限模型RBAC权限模型​RBAC权限模型(Role-BasedAccessControl)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型。 准备工作      菜单表实体类}  建表及SQL语句编......
  • RBAC权限模型、建表及SQL语句编写
    RBAC权限模型RBAC权限模型(Role-BasedAccessControl)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型。建表及SQL语句编写准备工作创建数据库SQL表CREATEDATABASE/*!32312IFNOTEXISTS*/`sg_security`/*!40100DEFAULTCHARACTERSETutf8......