当前位置: 首页 > 知识库问答 >
问题:

JavaFX项目的配置文件

相威
2023-03-14

我想在我的JavaFX项目中添加一个文件或类,该文件或类只包含项目的配置数据,例如数据库的访问数据、系统路径等。您将如何做到这一点?在普通课堂上写下所有的东西?肯定有更好的办法,对吧?

共有1个答案

全卜霸
2023-03-14

你说得对,我当然很乐意这么做。首先,我在项目文件夹中创建了一个属性文件,并将其命名为app。属性:

db_url=jdbc:mysql://localhost:3306/db name
db_user=user name
db_pwd=secret password
instructions_folder=/home/username/documents/

然后我创建了一个类来加载属性,并使它们在整个项目中都可用。

public class AppProperties {

    // FILENAME = Path to properties-file
    // Store and protect it where ever you want
    private final String FILENAME = "app.properties";
    
    private static final AppProperties config_file = new AppProperties();
    private Properties prop = new Properties();
    private String msg = "";

    private AppProperties(){
        InputStream input = null;

        try{
            input = new FileInputStream(FILENAME);

            // Load a properties
            prop.load(input);
        }catch(IOException ex){
            msg = "Can't find/open property file";
            ex.printStackTrace();
        }finally{
            if (input != null){
                try{
                    input.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }

        }
    }

    public String getProperty (String key){
        return prop.getProperty(key);
    }

    public String getMsg () {
        return msg;
    }

    // == Singleton design pattern == //
    // Where ever you call this methode in application
    // you always get the same and only instance (config_file)
    public static AppProperties getInstance(){
        return config_file;
    }
}

在DBUtilitis类中,我进行数据库查询,现在我将属性加载到最终变量中,并在查询方法中使用它们。

private static final String db_url = AppProperties.getInstance().getProperty("db_url");
    private static final String db_user = AppProperties.getInstance().getProperty("db_user");
    private static final String db_pwd = AppProperties.getInstance().getProperty("db_pwd");

如果我没有完全误解这一点,那么属性文件的优点是它们可以存储在服务器上的某个位置并受到保护。我希望这个解决方案不是完全错误的——不管怎样,它都很有效。我总是乐于接受建议和/或改进。

 类似资料:
  • 项目配置 项目配置 配置简介 CAT上项目名称:项目接入CAT后的唯一标识,来识别自己 事业部:项目所属事业部 产品线:项目所属产品线 负责人:项目负责人,该项不做为告警联系人 项目组邮件:项目负责人邮件,或项目组产品线邮件,多个邮箱由英文逗号分割,不要留有空格;作为发送告警邮件、微信的依据 项目组号码:项目负责人手机号;多个号码由英文逗号分隔,不要留有空格;作为发送告警短信的依据 机器分组配置

  • Hello World 项目创建 如上图标注 1 所示,点击 Create New Project 进入向导式创建项目 如上图标注 1 所示,如果此时 IntelliJ IDEA 还没有配置任何一个 SDK 的话,可以点击 New... 先进行 SDK 的配置。 如上图标注 2 所示,配置好 SDK 或选择好 SDK 之后,点击 Next 进入下一步。 如上图标注 1 所示,可以选择模板快速创建项

  • Project:build.gradle是用来配置项目的构建任务. 默认的build.gradle内容如下: //项目构建文件,你可以到各子项目/模块添加常用的配置选项. buildscript { //Android插件从这个仓库中下载 repositories { jcenter() // 依赖仓库源的别名,兼容maven的远程中央仓库 } //依赖 dependencies {

  • 默认的settings.gradle文件内容如下: include ':app' settings.gradle是项目的全局配置文件,主要声明一些需要加入构建的模块,本例中只有一个模块:app. 如果新增一个模块需要在这里添加配置,通过Android Studio添加依赖的module会自动在这里添加相应的配置的. 包含多个模块的格式是这样的: include ':app',':other-mod

  • 微信小程序可以在项目根目录使用 project.config.json 文件对项目进行配置(支付宝小程序存在对应功能的 mini.project.json 文件,但官网并未释出具体文档。因此下面均以微信小程序为例讲解)。如果需要配置该文件,可有以下两种方式: 在项目根目录中配置 当在项目根目录中创建 project.config.json 时,必须指定 miniprogramRoot 字段为编译后

  • 配置子项目 到目前为止你已经把ToDo项目根据功能拆分成多个模块,接下来可以用之前的方法来定义构建逻辑,下面有几点需要主要: 根目录和子目录使用相同的group和version属性值 所有的子目录都是Java项目需要Java插件来正常工作,所以你只需要在子项目中应用Java插件 web子项目是唯一一个依赖外部库的项目,它需要打包成WAR而不是JAR 子项目之间可以定义模块依赖 接下来你将学习如何定