若依yml配置文件读取方法学习

SpringBoot的yml配置用了好多年了,若依的方式让我眼前一亮。这些做确实挺好用的。

generator.yml

RuoYi-Vue/ruoyi-generator/src/main/resources/generator.yml
内容如下:

# 代码生成
gen:
  # 作者
  author: ruoyi
  # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
  packageName: com.ruoyi.system
  # 自动去除表前缀,默认是false
  autoRemovePre: false
  # 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
  tablePrefix: sys_
  # 生成代码保存的目录(临时目录)
  generatorCodePath: /Users/itkey/Downloads/generatorCode
  # Java后台的Src目录(后端项目代码存放的目录)
  javaSrc: /Users/itkey/Downloads/ruoyi-admin/src
  # Vue前端的Src目录(前端项目代码存放的目录)
  vueSrc: /Users/itkey/Downloads/ruoyi-ui/src

GenConfig.java

RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenConfig.java
内容如下:

package com.ruoyi.generator.config;

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

/**
 * 读取代码生成相关配置
 *
 * @author ruoyi
 */
@Component
@ConfigurationProperties(prefix = "gen")
@PropertySource(value = { "classpath:generator.yml" })
public class GenConfig
{
    /** 作者 */
    public static String author;

    /** 生成包路径 */
    public static String packageName;

    /** 自动去除表前缀,默认是false */
    public static boolean autoRemovePre;

    /** 表前缀(类名不会包含表前缀) */
    public static String tablePrefix;

    //生成代码保存的目录(临时目录)
    public static String generatorCodePath;
    //Java后台的Src目录(后端项目代码存放的目录)
    public static String javaSrc;
    //Vue前端的Src目录(前端项目代码存放的目录)
    public static String vueSrc;

    public static String getAuthor()
    {
        return author;
    }

    @Value("${author}")
    public void setAuthor(String author)
    {
        GenConfig.author = author;
    }

    public static String getPackageName()
    {
        return packageName;
    }

    @Value("${packageName}")
    public void setPackageName(String packageName)
    {
        GenConfig.packageName = packageName;
    }

    public static boolean getAutoRemovePre()
    {
        return autoRemovePre;
    }

    @Value("${autoRemovePre}")
    public void setAutoRemovePre(boolean autoRemovePre)
    {
        GenConfig.autoRemovePre = autoRemovePre;
    }

    public static String getTablePrefix()
    {
        return tablePrefix;
    }

    @Value("${tablePrefix}")
    public void setTablePrefix(String tablePrefix)
    {
        GenConfig.tablePrefix = tablePrefix;
    }

    public static String getGeneratorCodePath() {
        return generatorCodePath;
    }
    @Value("${generatorCodePath}")
    public  void setGeneratorCodePath(String generatorCodePath) {
        GenConfig.generatorCodePath = generatorCodePath;
    }

    public static String getJavaSrc() {
        return javaSrc;
    }
    @Value("${javaSrc}")
    public void setJavaSrc(String javaSrc) {
        GenConfig.javaSrc = javaSrc;
    }

    public static String getVueSrc() {
        return vueSrc;
    }
    @Value("${vueSrc}")
    public void setVueSrc(String vueSrc) {
        GenConfig.vueSrc = vueSrc;
    }
}

配置信息读取

其他的地方,平平无奇。但是配置文件读取的地方,这样写确实方便啊。直接调用static方法就可以实现配置读取,太酷了!

 //生成代码的目录
String generatorCodePath = GenConfig.getGeneratorCodePath();
 //Java后台的Src目录
String javaSrc = GenConfig.getJavaSrc();
 //Vue前端的Src目录
String vueSrc = GenConfig.getVueSrc();

你可能感兴趣的:(java,若依)