一、普通自定义参数

如果我们想要在Springboot中自定义一个参数,这个参数可以通过application.properties或者application.yml文件来设置,也可以通过java -jar的形式来设置,那么只需要在application.properties或者application.yml文件中正常设定即可,如:

#自定义热点词词库
keyword.url=F:/test/hotkeyword.txt

#自定义停用词词库
stopkeyword.url=F:/test/stopkeyword.txt

二、jar包自定义参数

jar包形式启动的时候可以通过命令"-Dkeyword.url=F:/test/hotkeyword2.txt"和“-Dstopkeyword.url=F:/test/stopkeyword2.txt”分别覆盖application.properties或者application.yml文件中的默认参数,完整命令如下:

java -Dkeyword.url=F:/test/hotkeyword2.txt -Dstopkeyword.url=F:/test/stopkeyword2.txt -jar extractKeyword.jar

三、默认文件自定义参数

当一和二都不存在时失效

3.1 设定默认文件路径

在src/main/resources目录下创建默认的文件信息,这里假设为:myfile/mystopkeyword.txt文件,如:

Springboot自定义变量的使用_springboot

这样我们在获取参数keyword.url和stopkeyword.url时,如果发现值为空,则可以使用默认的文件信息,保证程序正常运行。获取src/main/resources目录下文件的方法使用以下方法即可:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/**
 * <h5>功能:txt文档操作</h5>
 * 
 */
public class ToolTxt {
	
    /**
	 * <h5>功能:读取src/main/resources目录指定txt文件的内容</h5>
	 * 
	 * @return List<String>
	 */
	public static List<String> readTxt() {
		List<String> dataList = new ArrayList<String>();
		
        String templateFilePath = "myfile/mystopkeyword.txt"; // 确保路径正确
        InputStream inputStream = Object.class.getResourceAsStream("/" + templateFilePath);

        if (inputStream == null) {
            System.out.println("File not found: " + templateFilePath);
            return dataList;
        }

        try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
            String line;
            while ((line = reader.readLine()) != null) {
                dataList.add(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return dataList;
    }
}

将以上三种方法结合,我们可以三重保证自定义参数的完整性,防止发生信息为空的错误。